我使用一个修改列表命令作为别名(在 KSH 中):alias 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/*
执行带有一些选项的 list 命令并显示完整路径,这对我来说很重要。
不幸的是,别名方法不允许通配符参数。我的目标是让这成为可能。可能这是将命令创建为函数的最佳方式。答案中提到了这一点,但它还不起作用(请参阅评论)。
有任何想法吗?
最佳答案
使用 shell 函数而不是别名:
function ltf {
if [ -z "$1" ]; then
ls -lrtd1 ${PWD}/*
else
ls -lrtd1 $1
fi
}
关于shell - 将通配符传递给别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5699749/