是否有一个 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