[英]How can I list (ls) the 5 last modified files in a directory?
我知道ls -t
會按修改時間列出所有文件。 但是我怎樣才能將這些結果限制在最后n 個文件中呢?
嘗試使用頭部或尾部。 如果您想要 5 個最近修改的文件:
ls -1t | head -5
-1(那是一個)表示每行一個文件,頭部表示取前 5 個條目。
如果你想要最后 5 次嘗試
ls -1t | tail -5
接受的答案僅列出文件名,但要獲取前 5 個文件,也可以使用:
ls -lht | head -6
在哪里:
-l
以列表格式輸出
-h
使輸出易於閱讀(即文件大小以 kb、mb 等形式顯示)
-t
通過將最近修改的文件放在最前面來對輸出進行排序
head -6
將顯示 5 個文件,因為ls
在輸出的第一行打印塊大小。
我認為這是一種稍微更優雅且可能更有用的方法。
示例輸出:
total 26960312 -rw-r--r--@ 1 user staff 1.2K 11 Jan 11:22 phone2.7.py -rw-r--r--@ 1 user staff 2.7M 10 Jan 15:26 03-cookies-1.pdf -rw-r--r--@ 1 user staff 9.2M 9 Jan 16:21 Wk1_sem.pdf -rw-r--r--@ 1 user staff 502K 8 Jan 10:20 lab-01.pdf -rw-rw-rw-@ 1 user staff 2.0M 5 Jan 22:06 0410-1.wmv
使用tail
命令:
ls -t | tail -n 5
默認情況下ls -t
輸出從最新到最舊排序,因此要使用的命令組合取決於您希望輸出的排序方向。
對於從新到舊排序的最新 5 個文件,使用head
獲取輸出的前 5 行:
ls -t | head -n 5
對於從最舊到最新排序的最新 5 個文件,使用-r
開關反轉ls
的排序順序,並使用tail
獲取最后 5 行輸出:
ls -tr | tail -n 5
ls -t
按創建時間而不是最后修改時間列出文件。 如果ls -ltc
最后修改時間從最后到第一個(從上到下)列出文件,請使用ls -ltc
。 從而列出最后 n 個: ls -ltc | head ${n}
ls -ltc | head ${n}
沒有其他答案對我有用。 結果是文件夾和文件,這不是我所期望的。
對我有用的解決方案是:
find . -type f -mmin -10 -ls
這將在當前目錄中列出過去 10 分鍾內修改的所有文件。 它不會列出最后 5 個文件,但我認為它可能會有所幫助
如果您想觀看它處理最后五個修改的文件並在 2 秒內刷新並在頂部顯示文件總數,請使用:
watch 'ls -Art | wc -l; ls -ltr | tail -n 5'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.