![在 ls 输出中突出显示最后更新的三个文件](https://linux22.com/image/25778/%E5%9C%A8%20ls%20%E8%BE%93%E5%87%BA%E4%B8%AD%E7%AA%81%E5%87%BA%E6%98%BE%E7%A4%BA%E6%9C%80%E5%90%8E%E6%9B%B4%E6%96%B0%E7%9A%84%E4%B8%89%E4%B8%AA%E6%96%87%E4%BB%B6.png)
有没有办法重载或包装命令ls
,以便它突出显示/下划线/以其他方式使最后三个修改的文件变得明显?
我知道我可以简单地ls -rtl
按反向修改时间来订购,但我通常确实需要一个按字母顺序排列的文件列表,尽管我想快速识别我自己或其他开发人员修改的最后一个文件。
答案1
以下似乎对我有用
grep --color -E -- "$(ls -rtl | tail -n3)|$" <(ls -l)
它使用 grep 并在输入上突出显示ls -l
,并使用正则表达式来搜索三个最旧命令的任一输入。它还搜索行尾$
以打印整个文件。
您还可以将其放入函数中,以便可以lll *
与多个参数一起使用,就像使用ls
function lll ()
{
command grep --color -E -- "$(ls -rtl $@ | tail -n3)|$" <(ls -l $@)
}
答案2
它不会突出显示最后三个修改的文件(我认为这是很难可靠实现的事情),但是ls++
可能足以满足你的需求。它按相对时间突出显示文件,并按秒、小时、天或月前的颜色文件进行分组。
您可以配置颜色以使您倾向于工作的时间刻度更加明显(对于主动编码,小时与天对我来说是最重要的交叉点)。