Find
查找最新文件
如何找出給定目錄中最近訪問的文件?
我可以使用該
find
命令列出在最後n
幾分鐘內修改/訪問的所有文件。但就我而言,我不確定最後一個文件何時被修改/訪問?我所需要的只是列出所有其他子文件或子目錄中最近訪問/修改的所有文件,例如按訪問/修改時間排序。那可能嗎?
您可以使用遞歸開關 (
-R
)ls
以及按時間排序開關 (-t
) 和反向排序開關 (-r
) 來列出目錄樹中的所有文件。這不會按子目錄中的訪問/修改日期對所有文件進行排序,但會在每個子目錄中按此日期對它們進行獨立排序。使用如下命令:
ls -ltrR <sometopdir>
.例子
$ ls -ltrR . total 759720 -rw-r-----@ 1 sammingolelli staff 2514441 Mar 31 2015 restfulapi-120704053212-phpapp01.pdf -rw-r-----@ 1 sammingolelli staff 567808 Apr 7 2015 USGCB-Windows-Settings.xls -rw-r-----@ 1 sammingolelli staff 180736 Apr 7 2015 USGCB-RHEL5-Desktop-Settings-Version-1.2.5.0.xls -rw-r-----@ 1 sammingolelli staff 6474 Apr 8 2015 tap_kp_mavericks.txt ./kerberos: total 5464 -rw-r-----@ 1 sammingolelli staff 37317 Oct 2 13:03 Set_up_Kerberos_instruction_d8.docx -rw-r-----@ 1 sammingolelli staff 2753195 Oct 13 13:49 Keberos configuration with AD 01_09_2014.pdf ./homestarrunner: total 10624 -rw-rw-rw-@ 1 sammingolelli staff 319422 May 10 2000 error_hs.wav -rw-rw-rw-@ 1 sammingolelli staff 53499 Jun 8 2001 sb_duck.mp3 -rw-rw-rw-@ 1 sammingolelli staff 199254 Mar 11 2002 email_sb.wav -rw-rw-rw-@ 1 sammingolelli staff 39288 Mar 25 2002 bubs_dontutalk.mp3 -rw-rw-rw-@ 1 sammingolelli staff 75432 May 6 2002 trash_sb.wav -rw-rw-rw-@ 1 sammingolelli staff 298946 Dec 1 2002 error_sb.wav -rw-rw-rw-@ 1 sammingolelli staff 298686 Dec 1 2002 startup_hs.wav -rw-rw-rw-@ 1 sammingolelli staff 90279 Dec 1 2002 sb_meedlymee.mp3 -rw-rw-rw-@ 1 sammingolelli staff 73561 Dec 1 2002 sb_dubdeuce.mp3 -rw-rw-rw-@ 1 sammingolelli staff 193097 Dec 1 2002 sb_pizza.mp3 -rw-rw-rw-@ 1 sammingolelli staff 30093 Dec 1 2002 sb_stiny.mp3 -rw-rw-rw-@ 1 sammingolelli staff 61858 Dec 1 2002 ss_sadflying.mp3 -rw-rw-rw-@ 1 sammingolelli staff 150142 Dec 1 2002 email_hs.wav -rw-rw-rw-@ 1 sammingolelli staff 68545 Dec 1 2002 bubs_grabbinbutt.mp3 -rw-rw-rw-@ 1 sammingolelli staff 61022 Dec 1 2002 cz_jeorghb.mp3 -rw-rw-rw-@ 1 sammingolelli staff 40124 Dec 1 2002 marzy_nasty.mp3 -rw-rw-rw-@ 1 sammingolelli staff 224116 Dec 1 2002 shutdown_sb.wav -rw-rw-rw-@ 1 sammingolelli staff 260546 Dec 1 2002 shutdown_hs.wav -rw-rw-rw-@ 1 sammingolelli staff 57686 Dec 1 2002 trash_hs.wav
要列印最後 3 個訪問的文件(從最後訪問的文件到最後訪問的第三個文件排序):
find . -type f -exec stat -c '%X %n' {} \; | sort -nr | awk 'NR==1,NR==3 {print $2}'
列印最後 3 個修改的文件(從最後修改的文件到最後修改的第三個文件排序):
find . -type f -exec stat -c '%Y %n' {} \; | sort -nr | awk 'NR==1,NR==3 {print $2}'
find . -type f -exec stat -c '%X %n' *
:列印目前目錄層次結構中每個文件的最後訪問時間,後跟文件路徑;find . -type f -exec stat -c '%Y %n' *
:列印目前目錄層次結構中每個文件的最後修改時間,後跟文件路徑;sort -nr
: 以相反的數字順序排序;awk 'NR==1,NR==3 {print $2}'
:列印第一行、第二行和第三行的第二個欄位。您可以通過將 3 更改為所需的文件數來更改要顯示的文件數
awk 'NR==1,NR==3 {print $2}'
。% touch file1 % touch file2 % touch file3 % find . -type f -exec stat -c '%X %n' {} \; | sort -nr | awk 'NR==1,NR==3 {print }' ./file3 ./file2 ./file1 % find . -type f -exec stat -c '%Y %n' {} \; | sort -nr | awk 'NR==1,NR==3 {print }' ./file3 ./file2 ./file1 % cat file1 % find . -type f -exec stat -c '%X %n' {} \; | sort -nr | awk 'NR==1,NR==3 {print }' ./file1 ./file3 ./file2 % find . -type f -exec stat -c '%Y %n' {} \; | sort -nr | awk 'NR==1,NR==3 {print }' ./file3 ./file2 ./file1 % touch file2 % find . -type f -exec stat -c '%X %n' {} \; | sort -nr | awk 'NR==1,NR==3 {print }' ./file2 ./file1 ./file3 % find . -type f -exec stat -c '%Y %n' {} \; | sort -nr | awk 'NR==1,NR==3 {print }' ./file2 ./file3 ./file1