加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell – 将通配符传递给别名

发布时间:2020-12-15 21:21:11 所属栏目:安全 来源:网络整理
导读:我使用modifies list命令作为别名(在KSH中): 别名ltf =’ls -lrt -d -1 $PWD / *’ 所以命令ltf显示如下: -rw-r – r– 1 myuser mygroup 0 Apr 18 12:00 /usr/test.txt -rw-r – r– 1 myuser mygroup 0 Apr 18 12:00 /usr/test.log 现在我想使用通配符.
我使用modifies list命令作为别名(在KSH中):

别名ltf =’ls -lrt -d -1 $PWD / *’

所以命令ltf显示如下:

-rw-r – r– 1 myuser mygroup 0 Apr 18 12:00 /usr/test.txt
-rw-r – r– 1 myuser mygroup 0 Apr 18 12:00 /usr/test.log

现在我想使用通配符.但是使用ltf * .log不起作用.

实现这一目标的最佳方法是什么?

更新:我想指定我的问题,因为到目前为止答案并没有解决我的问题:命令ls -lrt -d -1 $PWD / *执行带有一些选项的列表命令并且它显示完整路径,这是一个重要的对我来说.

不幸的是,别名方法不允许使用通配符参数.我的目标是使这成为可能.可能这是将命令创建为函数的最佳方法.这在答案中提到,但它还不起作用(见评论).

有任何想法吗?

解决方法

使用 shell函数而不是别名:

function ltf {
  if [ -z "$1" ]; then
    ls -lrtd1 ${PWD}/*
  else
    ls -lrtd1 $1
  fi
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读