我经常想对当前目录中的最新文件执行功能。本质上,我想要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,但是我的shell功夫没有足够详细地介绍这一点。

最佳答案

也许

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

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

09-19 00:17