Shell 命令从根目录递归查找最新创建的文件?

Shell 命令从根目录递归查找最新创建的文件?

是否有一个 shell 命令可以从根目录递归地查找最新创建的文件?

答案1

find /mydir -type f -exec stat -c '%y %N' {} \; | sort -n

答案2

此方法仅使用find(和sort):

find /somedir -type f -printf "%T+ %p\n" | sort

您可以将其限制为最近 3 天,例如:

find . -type f -mtime -3 -printf "%T+ %p\n" | sort

或者过去 42.5 小时:

find . -type f -mmin -2550 -printf "%T+ %p\n" | sort

这与以下内容相同:

find . -type f -mmin -$((42 * 60 + 30)) -printf "%T+ %p\n" | sort

答案3

为了避免为每个检查的文件分叉一个进程,如果您在装有 GNU 版本的 find 和 xargs 的机器上,请考虑如下操作:

find /dir -type f -print0 | xargs -0 stat -c '%Y %N' | sort -n

答案4

ls这样可以正确处理空格并根据每个文件执行命令(在本例中)。更改(或删除)-n1以同时对多个文件执行命令。

find . -type f -printf "%T@ %p\0" | sort -z -nr | cut -z -d' ' -f2- |xargs -0 -n1 ls

相关内容