如何递归列出目录下的所有文件并按修改时间对输出进行排序?

我通常使用ls -ltr但它不会递归地找到所有文件。我正在使用 Linux .

答:

使用finds-printf并按合理的日期格式排序:

find -type f -printf '%T+\t%p\n' | sort -n

这应该最大限度地减少进程分叉,因此是最快的。

如果您不喜欢小数部分的示例(无论如何通常都不会在文件系统中实现):

find -type f -printf '%T+\t%p\n' | sed 's/\.[[:digit:]]\{10\}//' | sort -n
find -type f -printf '%T+\t%p\n' | cut --complement -c 20-30 | sort -n

如何递归列出文件并按修改时间排序?