在 ls 输出中突出显示最后更新的三个文件

dot*_*hen 11 linux command-line ls bash

有没有办法重载或包装ls命令,以便它突出显示/下划线/否则使最后三个修改过的文件变得明显?

我知道我可以简单ls -rtl地按反向修改时间排序,但我通常确实需要一个按字母顺序排列的文件列表,尽管我想快速识别我自己或另一个开发人员修改的最后一个文件。

Ber*_*ard 16

以下似乎对我有用

 grep --color -E -- "$(ls -rtl | tail -n3)|$" <(ls -l)
Run Code Online (Sandbox Code Playgroud)

它使用 grep 在输入上突出显示,ls -l并使用正则表达式来搜索三个最旧命令的输入之一。它还搜索行尾$以打印整个文件。

你也可以把它放在一个函数中,这样你就可以使用lll *多个参数,就像你使用的一样ls

function lll ()
{
    command grep --color -E -- "$(ls -rtl $@ | tail -n3)|$" <(ls -l $@)
}
Run Code Online (Sandbox Code Playgroud)

  • 那是可笑的史诗。:D (2认同)