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

标签 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 但我的 shell kung fu 没有足够详细地涵盖这一点。

最佳答案

也许

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

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

关于shell - 当前目录中最后一个文件的全局别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22742299/

相关文章:

linux - 为 Ubuntu 定义一个设置 key 文件,以便在通过 SSH 连接到服务器时使用

c++ - 需要有关函数别名的帮助

java - 如何使用 jstat 或其他基于命令行的工具获取当前/最大 jvm 堆利用率(单个值)?

MySQL:使用另一个表中的值作为列别名?

Mysql别名内连接链问题

android - 跨 Android 版本的可用 Linux 命令

linux - 如果 bash 别名不能接受参数,为什么这些别名可以工作?

linux - 是否可以从 stdin、stdout、stderr 以外的 fd 重定向输入/输出

bash - 找出我必须在 Linux 系统上安装哪个包

command-line - 如何在 IntelliJ IDEA 中输入命令行参数?