根据上次修改日期对目录中的文件进行递归排序
我修改了目录中的很多文件,想通过按上次修改日期对它们进行排序来了解这些文件是什么,并且我希望排除一些扩展名
在 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