Command-Line
Linux 顯示目錄中大於 1 GB 的文件並顯示大小
我試圖找到一個顯示大於 1 GB 的文件並顯示按大小排序的文件的命令。我已經嘗試過
find . -maxdepth 2 -type f -size +1G -print0 |xargs -0 du -h |sort -rh
,但由於某種原因,這會顯示大小不超過 1 GB 的文件。例如,這是在輸出中1.0K ./<repo>/.git/info
至少有兩個可能的原因:
- 也許你的
find
印刷品什麼都沒有。在這種情況下xargs
執行du -h
相當於du -h .
. 調查--no-run-if-empty
GNU 的選項xargs
。或者更好地習慣find … -exec …
而不是find … | xargs …
. 像這樣:find . -maxdepth 2 -type f -size +1G -exec du -h {} + | sort -rh
find -size
測試(幾乎)du --apparent-size
顯示的內容,而du
沒有此選項可能會非常不同意,尤其是當文件稀疏時。該選項不可移植。我認為在你的情況下,第一個原因是罪魁禍首。Note
./<repo>/.git/info
不能來自,find . -maxdepth 2 -type f
因為它的深度是 3。這意味著du
在某個目錄上遞歸操作。