当前目录中最后一个文件的全局别名

时间:2014-03-30 09:20:26

标签: shell command-line alias zsh

我经常想在当前目录中的最新文件上执行一个函数。基本上我想要一个更通用的方法版本open last modified file in the directory using vi

我能够在zsh中编写一个全局别名,它可以完成我需要的部分:

alias -g lafi='`ls -rt|tail -n 1`'

现在我可以执行类似

的操作
cat lafi

我将在当前目录中看到最新文件的内容。或者我可以发出echo lafi来找出最后一个文件是什么(或者我甚至可以说ls -rt|tail -n 1)。

有没有办法修改别名定义,以便输出最后一个文件(到STDERR?),然后像上面的lafi一样将它交给上面,以便在命令行中进一步消费?所以对于上面的cat lafi我希望得到这个输出。

last file: <name of last-file>
<content of last-file>

我怀疑这涉及tee,但我的贝壳功夫并没有详细说明这一点。

1 个答案:

答案 0 :(得分:3)

也许

alias -g lafi='`ls -rt | tail -n 1 | tee >({ printf "last file: "; cat; } >&2)`'

我认为zsh有这样的流程替换。