簡體   English   中英

如何列出(ls)目錄中最后修改的 5 個文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM