Linux
如何通過列印最新的 10 個更新文件對查找輸出進行排序?
在我的 linux 機器上,我想知道使用者最近編輯了哪些文件
假設我想在
/home
最近編輯的最多 10 個文件下遞歸搜尋如何使用 find 命令或其他解決方案執行此操作?
預期輸出範例:
27/6/2018 11:23 /home/my_data/file 27/6/2018 10:21 /home/top/oo/pp/file 27/6/2018 09:23 /home/my_data/GG/file
以遞歸方式列出
ls -lRrt
如果您想查找所有文件並按日期更改順序列出它們
ls -lrt `find . -type f`
可能有 10,000 種方法可以做到這一點。
查找目前目錄下最新的 10 個文件:
find -type f -printf "%TY-%Tm-%Td %TH:%TM:%TS\t%h/%f\n" | sort -r | head -n 10
可選擇添加
| cut -f2
以剝離時間資訊。這使用 to
-printf
選項find
在文件名前面列印文件的修改時間,文件名由製表符分隔,其中時間的格式可以簡單地按sort
.sort -r
進行反向排序以將最新(即“最大”)時間放在開頭。對於包含換行符的文件名,這會有所下降。這可以通過結束 printf 字元串而不是
\n
結束\0
文件名來解決。然後添加--zero-terminated
到排序選項,並放在| tr '\0' '\n'
最後以將空字節轉換回換行符。