按修改日期查找和排序文件
Find and sort files by date modified
我知道这个问题网上有很多答案。但是,我想知道这个替代解决方案是否有效:
ls -lt `find . -name "*.jpg" -print | head -10`
我当然知道这只会给我前 10 个结果。我问的原因是因为我不确定 ls
是否针对 find
的每个结果单独执行。谢谢
在您的解决方案中:
ls
将在 find
被评估后执行
find
可能会产生太多结果,ls
无法处理,在这种情况下,您可能需要查看 xargs
命令
这应该会更好:
find . -type f -print0 | xargs -0 stat -f"%m %Sm %N" | sort -rn
命令的三部分为:
- 查找所有文件并打印它们的路径
- 使用
xargs
处理(长)文件列表并打印出每个文件的修改unixtime、人类可读时间和文件名
- 以相反的数字顺序对结果列表进行排序
主要技巧是将文件最后一次修改时的数字unixtime添加到行的开头,然后对它们进行排序。
我知道这个问题网上有很多答案。但是,我想知道这个替代解决方案是否有效:
ls -lt `find . -name "*.jpg" -print | head -10`
我当然知道这只会给我前 10 个结果。我问的原因是因为我不确定 ls
是否针对 find
的每个结果单独执行。谢谢
在您的解决方案中:
ls
将在find
被评估后执行find
可能会产生太多结果,ls
无法处理,在这种情况下,您可能需要查看xargs
命令
这应该会更好:
find . -type f -print0 | xargs -0 stat -f"%m %Sm %N" | sort -rn
命令的三部分为:
- 查找所有文件并打印它们的路径
- 使用
xargs
处理(长)文件列表并打印出每个文件的修改unixtime、人类可读时间和文件名 - 以相反的数字顺序对结果列表进行排序
主要技巧是将文件最后一次修改时的数字unixtime添加到行的开头,然后对它们进行排序。