2016-04-29 77 views
1

命令我有一個腳本:排序找到日期

newerthan="2016-02-08" 
olderthan="2016-04-29" 
find/-type f -name "*" -newermt "$newerthan" ! -newermt "$olderthan" -ls 

該列表文件:

16481 0 -r--r--r-- 1 root  root   4096 Mar 16 11:41 /sys/module/sunrpc/srcversion 
16482 0 -r--r--r-- 1 root  root   4096 Mar 13 04:42 /sys/module/sunrpc/initstate 
16483 0 -r--r--r-- 1 root  root   4096 Mar 16 11:41 /sys/module/sunrpc/refcnt 
16485 0 -r--r--r-- 1 root  root   4096 Mar 17 11:41 /sys/module/sunrpc/sections/.note.gnu.build-id 
16486 0 -r--r--r-- 1 root  root   4096 Mar 12 11:41 /sys/module/sunrpc/sections/.text 

是否可以按日期排序,結果呢?

+1

試試這個:[?我如何使用'find'和修改時間對結果進行排序(http://unix.stackexchange.com/questions/29899/how-can-i-use - 查找和排序結果的mtime) –

回答

1

如果你要打印的文件名與有序日期進行:

find/-type f -name "*" -newermt "$newerthan" ! -newermt "$olderthan" -printf "%T+\t%p\n" | sort 

如果你想只打印sorte文件名d命令:

find/-type f -name "*" -newermt "$newerthan" ! -newermt "$olderthan" -printf "%T+\t%p\n" | sort | awk '{print $2}' 
+1

如果你想顛倒順序:使用'sort -r'而不是'sort'。 – RaviTezu

1

這將返回排序的日期,時間戳限制,列表顯示文件名

find/-type f -name "*" -newermt "$newerthan" ! -newermt "$olderthan" -printf '%[email protected] %p\n' | sort -k 1 -n | sed 's/^[^ ]* //' 

如果你需要那些等欄目,你可以改變的printf和排序參數表現出更多的列和排序位置,而不是由列