Linux bash 上有没有办法突出显示当前路径最后 N 分钟内修改的所有文件

Def*_*her 3 linux bash zsh

我看到很多类似的问题,但这些问题的答案不太符合我的需求。最常见的答案是使用类似 的命令find . -mmin -60 -maxdepth 1。但是这个命令只输出匹配的文件,我想要的是输出所有文件,就像什么一样ls -al,并突出显示(像不同的颜色)在最后N分钟修改的所有文件。我不知道是否可以结合findgrep实现这个目标,提前感谢您的帮助!

Ren*_*let 9

假设您的版本find支持该printf操作,并且您希望使用前导 等突出显示***,则以下内容应该有效:

find . -maxdepth 1 -mmin -60 -printf '*** %p\n' -o -print
Run Code Online (Sandbox Code Playgroud)

如果您喜欢颜色,并且您的终端支持它,则可以使用ANSI 转义码。绿色示例:

find . -maxdepth 1 -mmin -60 -printf '\033[32m%p\033[0m\n' -o -print
Run Code Online (Sandbox Code Playgroud)

说明:

如果文件或目录在不到 60 分钟前被修改,则printf我们将执行该操作,否则将执行该print操作。

默认情况下,find测试和操作通过逻辑 AND 组合。-o 是逻辑或。它的优先级低于 AND。find一旦两个或运算项之一计算为真,这里就会停止。