在Linux bash上有没有一种方法可以突出显示在当前路径的最后N分钟中修改的所有文件



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

假设您的find版本支持printf操作,并且您希望突出显示(例如)一个前导***,则以下内容应该有效:

find . -maxdepth 1 -mmin -60 -printf '*** %pn' -o -print

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

find . -maxdepth 1 -mmin -60 -printf '33[32m%p33[0mn' -o -print

解释:

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

默认情况下,find测试和操作与逻辑and相结合。CCD_ 11是逻辑OR。它的优先级低于AND。这里,一旦两个OR项中的一个评估为真,find就停止。

最新更新