如何使用“find”并按 mtime 对结果进行排序?

如何使用“find”并按 mtime 对结果进行排序?

我想使用find但像 一样按时间顺序对结果进行反向排序ls -ltr。这是否可以通过标志或管道的任何组合来实现?

答案1

使用find-printf命令输出时间(以可排序的方式)和文件,然后排序。如果你使用 GNU find,

find . your-options -printf "%T+ %p\n" | sort

-printf "%T+ %p\n"为了方便起见,这里对from进行解释man find

  • %Tk文件的最后修改时间,格式为 指定k,与 相同%A
    • 在这种情况下k设置为+
    • + 日期和时间,以 分隔+,例如“2004-04-28+22:22:05.0”。这是一个 GNU 扩展。时间以当前时区给出(可能会受到设置 TZ 环境变量的影响)。秒字段包括小数部分。
  • %p 文件名。

答案2

如果这只是一个深度为 n(假设深度为 2)的文件夹层次结构,我发现这个很有用:

ls -laht --full-time */*

相关内容