按修改时间对文件(包括所有子目录中的文件)进行排序

时间:2013-04-01 15:49:27

标签: linux file list

在Linux终端上,有没有办法列出父目录或下面任意数量的子目录级别的所有文件,所有文件都按整个文件列表中的修改时间排序?

ls -Rlt还不够,因为它按每个子目录的文件修改时间排序..

2 个答案:

答案 0 :(得分:3)

这将做你想要的事情

find . -type f -printf '%TY%Tm%Td%TH%TM%TS %p\n'|sort

示例输出:

20130312134959.5090000000 ./servlets/servlet/target/reporting_app.servlets.servlet/WEB-INF/lib/java-foundation-1.1.20.jar
20130312134959.7580000000 ./servlets/servlet/target/reporting_app.servlets.servlet/WEB-INF/lib/log4j-rolling-appender-1.2.15.jar
20130312134959.8050000000 ./servlets/servlet/target/reporting_app.servlets.servlet/WEB-INF/lib/commons-logging-1.1.1.jar
20130312134959.9140000000 ./servlets/servlet/target/reporting_app.servlets.servlet/WEB-INF/lib/commons-digester-1.8.1.jar
...

答案 1 :(得分:1)

如何使用find这样:

find /my/dir/to/scan -type f -exec ls -lt --time-style=+"%F-%T" {} ";" | sort -k 6 

这可能需要一些时间才能返回,因为最终| sort

如果您通过向ls添加/删除选项来更改格式,则可能需要调整排序列(当前为6)日期。