我想按时间列出和排序,所有匹配某个模式的文件,然后只得到前 20 个:
ls -laths *.txt | head -20
这很好用,例如,如果我创建两个文件:
touch 1.txt
touch 2.txt
上述命令的结果是:
$ ls -laths *.txt | head -20
1,5K -rw-rw---- 1 user user 0 20. Apr 09:49 2.txt
1,5K -rw-rw---- 1 user user 0 20. Apr 09:49 1.txt
如果我在终端上这样做,这很有效。但是当试图将其保存为别名时(输入 $1 是我想要的模式),如下所示:
alias lis20='function _(){ ls -laths "${1}" | head -20; }; _'
然后当我使用别名时,我得到:
$ lis20 *.txt
1,5K -rw-rw---- 1 user user 0 20. Apr 09:49 1.txt
这意味着它只列出第一个文件。我已经尝试了内部变量的几次扩展,就像在这个问题中一样,但没有任何成功。
我正在使用 zsh,但如果有一个适用于 bash 和 zsh 的解决方案会很好。