n.s*_*.st 19
find -printf "%TY-%Tm-%Td %TT %p\n" | sort -n
Run Code Online (Sandbox Code Playgroud)
会给你类似的东西
2014-03-31 04:10:54.8596422640 ./foo
2014-04-01 01:02:11.9635521720 ./bar
如果您想扁平化目录结构(从而按日期对所有目录中的所有文件进行排序,忽略文件所在的目录),find@yeti 建议的 -approach 是可行的方法。如果你想保留目录结构,你可以试试
$ ls -ltR /path/to/directory
Run Code Online (Sandbox Code Playgroud)
基于目录排序。
这将列出所有files 内容<dir>,最上面的是最旧的修改
find <dir> -type f -print0 | xargs -0 ls -ltr
Run Code Online (Sandbox Code Playgroud)
最新的修改是最上面的
find <dir> -type f -print0 | xargs -0 ls -lt
Run Code Online (Sandbox Code Playgroud)
请注意,只有当文件名列表不超过系统上的总命令行长度限制时,这才有效。
在 bash 中,shopt -s globstar先运行。在 ksh93 中,set -o globstar先运行。在 zsh 中,您已经设置好了。
ls -dltr **/*
Run Code Online (Sandbox Code Playgroud)
如果您的文件太多以至于超出了系统上的命令行长度限制,这将返回一个错误。在 zsh 中,您可以改用它:
print -rl -- **/*(Om)
Run Code Online (Sandbox Code Playgroud)