我希望它以递归方式查看当前目录(/ data / trac)中的所有内容,并仅列出父项(test,test2,project1),其中包含最新更新文件的时间戳,该文件位于其旁边的每个目录中,并按时间戳排序 .
这是场景:
$ pwd
$ /data/trac
$ ls -lht
drwxrwxr-x 9 www-data www-data 4.0K Apr 30 2012 test
drwxrwxr-x 9 www-data www-data 4.0K Apr 30 2013 test2
drwxrwxr-x 9 www-data www-data 4.0K Apr 30 2013 project1
$ cd test
$ ls -lht
drwxrwxr-x 2 www-data www-data 4.0K Feb 4 16:12 db
drwxrwxr-x 2 www-data www-data 4.0K Dec 13 13:16 conf
drwxrwxr-x 4 www-data www-data 4.0K Jan 11 2013 attachments
drwxrwxr-x 2 www-data www-data 4.0K Apr 30 2012 templates
我们有一个名为“test”的目录,最后更新于2012年4月30日 . 例如,在这种情况下,该目录中有一个db文件夹,其中包含一个文件,该文件已于2014年2月4日更新 . 我想将此日期用作主父文件夹“test”的时间戳 .
我想要做的是只显示父文件夹( test , test2 和 project1 )按上次更新日期(递归)对它们进行排序,并显示上次更新的日期 .
所以输出应该是:
$ awesome-list-command
Feb 4 2014 test
Feb 2 2014 test2
我已经在网上搜了几个小时试图找到这个,甚至搞砸了我自己无济于事 . 我试过了:
find . -exec stat -f "%m" \{} \; | sort -n -r | head -1
find $1 -type f | xargs stat --format '%Y :%y %n' | sort -nr | cut -d: -f2- | head
find /some/dir -printf "%T+\n" | sort -nr | head -n 1
find /some/dir -printf "%TY-%Tm-%Td %TT\n" | sort -nr | head -n 1
stat --printf="%y %n\n" $(ls -tr $(find * -type f))
其中没有一个有效 .
1 回答
我的测试用例是
tree
,如下所示:foo
是每个目录中的最新文件 .输出:
比较: