根据上次修改日期对目录中的文件进行递归排序

根据上次修改日期对目录中的文件进行递归排序

根据上次修改日期对目录中的文件进行递归排序

我修改了目录中的很多文件,想通过按上次修改日期对它们进行排序来了解这些文件是什么,并且我希望排除一些扩展名

在 svn 目录中我也有很多 .svn 文件,我不想在排序中显示它们

答案1

find -printf "%TY-%Tm-%Td %TT %p\n" | sort -n

会给你类似的东西

2014-03-31 04:10:54.8596422640 ./foo
2014-04-01 01:02:11.9635521720 ./bar

答案2

如果您想扁平化目录结构(从而按日期对所有目录中的所有文件进行排序,忽略文件所在的目录),find@yeti 建议的 - 方法是可行的方法。如果你想保留目录结构,你可以尝试

$ ls -ltR /path/to/directory

它基于目录进行排序。

答案3

在 bash 中,shopt -s globstar首先运行。在ksh93中,set -o globstar先运行。在 zsh 中,您已经设置好了。

ls -dltr **/*

如果您有太多文件以至于超出了系统上的命令行长度限制,这将返回错误。在 zsh 中,您可以使用它:

print -rl -- **/*(Om)

答案4

假设您正在使用 GNU find,请尝试:

find $SOMEPATH -exec stat -c '%Y %n' '{}' + | sort -n

相关内容