在Linux终端上,有没有办法列出父目录或下面任意数量的子目录级别的所有文件,所有文件都按整个文件列表中的修改时间排序?
ls -Rlt
还不够,因为它按每个子目录的文件修改时间排序..
答案 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
)日期。