shell - 将通配符传递给别名

标签 shell unix ksh

我使用一个修改列表命令作为别名(在 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/

相关文章:

linux - Unix 脚本在读取行 "No such file or directory"错误时循环 cat 文件

linux - Unix (ksh) 脚本,用于读取文件、解析和仅输出某些列

shell - 如何在变量而不是文件中将 xml 传递给 xmllint?

shell - $ 和 ${} 之间的 ksh 差异

shell - 如何打印文件中出现字符串的行号?

c - 如何计算 linux 中两个二进制文件(即两个可执行文件)之间的差异

linux - 使用 bash 时忽略正则表达式

unix - 将 header 插入文件

java - 通过shell脚本将参数从txt文件传递给java文件

macos - 是否有热键可以选择我在 unix 命令中输入的所有文本?