我想构建一个Linux命令,以列出特定目录(和子目录)中的所有文件(及其完整路径)按访问时间排序。列出目录(和子目录)中的所有文件(包含完整路径),按访问时间排序
ls可以按访问时间排序,但不会给出完整路径。查找给出了完整路径,但是对访问时间的唯一控制是使用-atime N(至少在24 * N小时前访问)指定范围,这不是我想要的范围。
有没有办法按访问时间排序并获得完整路径?我只能编写一个脚本,但似乎应该有一种方法可以用标准的Linux程序来完成。
我想构建一个Linux命令,以列出特定目录(和子目录)中的所有文件(及其完整路径)按访问时间排序。列出目录(和子目录)中的所有文件(包含完整路径),按访问时间排序
ls可以按访问时间排序,但不会给出完整路径。查找给出了完整路径,但是对访问时间的唯一控制是使用-atime N(至少在24 * N小时前访问)指定范围,这不是我想要的范围。
有没有办法按访问时间排序并获得完整路径?我只能编写一个脚本,但似乎应该有一种方法可以用标准的Linux程序来完成。
find . -type f -exec ls -l {} \; 2> /dev/null | sort -t' ' -k +6,6 -k +7,7
这将找到的所有文件,并通过日期,然后时间排序。然后,您可以使用awk
或cut
从ls -l
输出
你可以尝试:
ls -l $(find /foo/bar -type f)
ls
命令来实现你的目标。find
CMDfind . -type f | xargs ls -ldt
提取日期,文件名应该做的伎俩只要不是你撞的命令一样的参数限制和产卵LS的2个实例这么多的文件。
find . -type f -exec ls -l --full-time {} \; 2> /dev/null | sort -t' ' -k +6,6 -k +7,7
亚历克斯的答案没有为我工作,因为我有超过一年的文件和排序搞砸了。上面添加了--full-time参数,它将日期/时间值核心化,并使它们可排序而不管它们多大。
'--full-time'参数在Mac OS X中不存在。@ Kent的解决方案效果很好。 – 2013-09-04 19:38:47
pwd | xargs -I % find % -type f
工作得很好。我认为这不受getconf ARG_MAX的限制? – Andrew 2012-03-10 00:04:51
没错,它不受ARG_MAX的限制,因为它不会将它作为参数传递,而是用管道输出。程序之间可以传输多少数据没有限制。 – Alex 2012-03-11 17:22:01
太棒了!谢了哥们!很好的了解这个限制,因为我的目录中有很多很多文件。 – Andrew 2012-03-12 12:16:40