按上次编辑date列出文件

假设我有一个像/home/user/的目录。

我怎么能列出该文件夹下的每一个文件(甚至在子目录中),并按他们上次编辑的datesorting?

您可以使用:

 $ ls -Rt 

其中-R表示recursion (包含子目录),- -t表示“按最后修改datesorting”。

如果您想要一个主列表,其中所有文件修改datesorting在一起 ,显示它们所在的目录,但不按目录分组 ,则可以使用以下命令:

 find . -type f -printf "%-.22T+ %M %n %-8u %-8g %8s %Tx %.8TX %p\n" | sort | cut -f 2- -d ' ' 

结果看起来很像ls -l

 -rw-r  -  r-- 1 root root 3892 08/11/2009 11:03:36 /usr/share/man/man1/xmllint.1.gz
 -rw-r  -  r-- 1 root root 22946 08/13/2009 11:59:20 /usr/share/man/man1/curl.1.gz
 -rw-r  -  r-- 1 root root 728 08/17/2009 12:06:33 /usr/share/man/man1/thunderbird.1.gz
 -rw-r  -  r-- 1 root root 873 08/18/2009 10:52:47 /usr/share/man/man1/libgnutls-config.1.gz
 -rw-r  -  r-- 1 root root 2552 08/19/2009 02:00:34 /usr/share/man/man3/Purple.3pm.gz
 -rw-r  -  r-- 1 root root 9546 08/19/2009 02:02:00 /usr/share/man/man1/pidgin.1.gz
 -rw-r  -  r-- 1 root root 2201 08/19/2009 02:02:46 /usr/share/man/man3/Pidgin.3pm.gz
 -rw-r  -  r-- 1 root root 926 08/19/2009 02:03:05 /usr/share/man/man1/purple-remote.1.gz
 -rw-r  -  r-- 1 root root 18052 08/19/2009 04:11:47 /usr/share/man/man1/mono.1.gz
 -rw-r  -  r  -  1 root root 1845 08/19/2009 04:11:47 /usr/share/man/man5/mono-config.5.gz

Mac OS X

对于那些使用Mac OS X的用户,选项-printf在BSD找不到(你会得到这个错误: find: -printf: unknown primary or operator )。 幸运的是,你可以通过Homebrew安装GNU find(应该有一个选项FinkMacports

 brew install findutils 

安装之后,GNU find应该可以作为gfind 。 所以,你需要做的就是把上面的行改成:

 gfind . -type f -printf "%-.22T+ %M %n %-8u %-8g %8s %Tx %.8TX %p\n" | sort | cut -f 2- -d ' '