如何按最后修改的内容对目录进行排序?
How to sort directory by last modified content?
我认为默认情况下,目录应该按 ls -lt
最后修改的内容排序。但事实并非如此,至少在我的CentOS 7系统中是这样。请查看下面的终端输出。
似乎目录在创建文件时按预期排序,但在修改文件时却不是。
如何让它们按其中任何内容的最后修改时间排序?
[chinazzo@potzblix test]$ mkdir dir1
[chinazzo@potzblix test]$ mkdir dir2
[chinazzo@potzblix test]$ echo "Create in dir1" > dir1/file
[chinazzo@potzblix test]$ ls -lta
total 4
drwxrwxr-x. 2 chinazzo chinazzo 18 Jan 19 11:55 dir1 # Ok
drwxrwxr-x. 4 chinazzo chinazzo 30 Jan 19 11:55 .
drwxrwxr-x. 2 chinazzo chinazzo 6 Jan 19 11:55 dir2
drwx------. 31 chinazzo chinazzo 4096 Jan 19 11:49 ..
[chinazzo@potzblix test]$ echo "Create in dir2" > dir2/file
[chinazzo@potzblix test]$ ls -lta
total 4
drwxrwxr-x. 2 chinazzo chinazzo 18 Jan 19 11:56 dir2 # Ok
drwxrwxr-x. 2 chinazzo chinazzo 18 Jan 19 11:55 dir1
drwxrwxr-x. 4 chinazzo chinazzo 30 Jan 19 11:55 .
drwx------. 31 chinazzo chinazzo 4096 Jan 19 11:49 ..
[chinazzo@potzblix test]$ echo "Mod in dir1" >> dir1/file
[chinazzo@potzblix test]$ ls -lta
total 4
drwxrwxr-x. 2 chinazzo chinazzo 18 Jan 19 11:56 dir2
drwxrwxr-x. 2 chinazzo chinazzo 18 Jan 19 11:55 dir1 # Not ok, notice mtime 11:55
drwxrwxr-x. 4 chinazzo chinazzo 30 Jan 19 11:55 .
drwx------. 31 chinazzo chinazzo 4096 Jan 19 11:49 ..
[chinazzo@potzblix test]$ ls -lta dir1
total 4
-rw-rw-r--. 1 chinazzo chinazzo 27 Jan 19 11:56 file # but file (in dir1) mtime 11:56
drwxrwxr-x. 2 chinazzo chinazzo 18 Jan 19 11:55 .
drwxrwxr-x. 4 chinazzo chinazzo 30 Jan 19 11:55 ..
使用查找:
find . -type d -printf "%Ts/%f\n" | sort -n
仅搜索目录,然后以纪元格式 (%Ts) 打印最后修改时间以及目录名称 (%f)。将输出通过管道传递给 sort -n 以按修改时间对目录进行排序。
我认为默认情况下,目录应该按 ls -lt
最后修改的内容排序。但事实并非如此,至少在我的CentOS 7系统中是这样。请查看下面的终端输出。
似乎目录在创建文件时按预期排序,但在修改文件时却不是。
如何让它们按其中任何内容的最后修改时间排序?
[chinazzo@potzblix test]$ mkdir dir1
[chinazzo@potzblix test]$ mkdir dir2
[chinazzo@potzblix test]$ echo "Create in dir1" > dir1/file
[chinazzo@potzblix test]$ ls -lta
total 4
drwxrwxr-x. 2 chinazzo chinazzo 18 Jan 19 11:55 dir1 # Ok
drwxrwxr-x. 4 chinazzo chinazzo 30 Jan 19 11:55 .
drwxrwxr-x. 2 chinazzo chinazzo 6 Jan 19 11:55 dir2
drwx------. 31 chinazzo chinazzo 4096 Jan 19 11:49 ..
[chinazzo@potzblix test]$ echo "Create in dir2" > dir2/file
[chinazzo@potzblix test]$ ls -lta
total 4
drwxrwxr-x. 2 chinazzo chinazzo 18 Jan 19 11:56 dir2 # Ok
drwxrwxr-x. 2 chinazzo chinazzo 18 Jan 19 11:55 dir1
drwxrwxr-x. 4 chinazzo chinazzo 30 Jan 19 11:55 .
drwx------. 31 chinazzo chinazzo 4096 Jan 19 11:49 ..
[chinazzo@potzblix test]$ echo "Mod in dir1" >> dir1/file
[chinazzo@potzblix test]$ ls -lta
total 4
drwxrwxr-x. 2 chinazzo chinazzo 18 Jan 19 11:56 dir2
drwxrwxr-x. 2 chinazzo chinazzo 18 Jan 19 11:55 dir1 # Not ok, notice mtime 11:55
drwxrwxr-x. 4 chinazzo chinazzo 30 Jan 19 11:55 .
drwx------. 31 chinazzo chinazzo 4096 Jan 19 11:49 ..
[chinazzo@potzblix test]$ ls -lta dir1
total 4
-rw-rw-r--. 1 chinazzo chinazzo 27 Jan 19 11:56 file # but file (in dir1) mtime 11:56
drwxrwxr-x. 2 chinazzo chinazzo 18 Jan 19 11:55 .
drwxrwxr-x. 4 chinazzo chinazzo 30 Jan 19 11:55 ..
使用查找:
find . -type d -printf "%Ts/%f\n" | sort -n
仅搜索目录,然后以纪元格式 (%Ts) 打印最后修改时间以及目录名称 (%f)。将输出通过管道传递给 sort -n 以按修改时间对目录进行排序。