在 Linux 终端上,我有没有办法列出父目录或以下任意数量的子目录级别中的所有文件,所有文件都按整个文件列表中的修改时间排序?
ls -Rlt
还不够,因为它按每个子目录的文件的修改时间排序..
这会做你想做的
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
...
像这样使用怎么find
样:
find /my/dir/to/scan -type f -exec ls -lt --time-style=+"%F-%T" {} ";" | sort -k 6
由于 final 的原因,这可能需要一些时间才能返回| sort
。
如果您通过添加/删除选项来更改格式,ls
您可能需要调整排序列,目前是6
日期。