Command-Line

Linux 顯示目錄中大於 1 GB 的文件並顯示大小

  • December 5, 2020

我試圖找到一個顯示大於 1 GB 的文件並顯示按大小排序的文件的命令。我已經嘗試過find . -maxdepth 2 -type f -size +1G -print0 |xargs -0 du -h |sort -rh,但由於某種原因,這會顯示大小不超過 1 GB 的文件。例如,這是在輸出中1.0K ./<repo>/.git/info

至少有兩個可能的原因:

  1. 也許你的find印刷品什麼都沒有。在這種情況下xargs執行du -h相當於du -h .. 調查--no-run-if-emptyGNU 的選項xargs。或者更好地習慣find … -exec …而不是find … | xargs …. 像這樣:
find . -maxdepth 2 -type f -size +1G -exec du -h {} + | sort -rh
  1. find -size測試(幾乎)du --apparent-size顯示的內容,而du沒有此選項可能會非常不同意,尤其是當文件稀疏時。該選項不可移植。

我認為在你的情況下,第一個原因是罪魁禍首。Note./<repo>/.git/info不能來自,find . -maxdepth 2 -type f因為它的深度是 3。這意味著du在某個目錄上遞歸操作。

引用自:https://unix.stackexchange.com/questions/622979