我想構建一個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