Linux 找出佔用空間最大檔案及目錄

有時發現系統的空間用得很多, 那便需要找出佔用用空間最大的檔案或目錄, 或者需要在指定的目錄位置下找出佔用空間最多的目錄, 例如 /home, /var 等。

在 Linux 下沒有單一指令可以完成這個工作, 但只要透過管線 (pipe) 將幾個指令配合使用才可以簡單地完成。

— du : 計算指定目錄佔用的空間.
— sort : 將檔案或輸入的資料逐行排序.
— head : 將檔案開頭的資料輸出.
— find : 搜索檔案.

以下指令會找出 /home 目錄下佔用空間最多的 10 個檔案及目錄:


# du -a /home | sort -n -r | head -n 10

以上輸出的單位不是很易讀, 如果想將輸出容量單位更易讀, 例如以 K, M, G, 作為單位, 可以這樣做:

# cd /home
# du -hsx * | sort -rh | head -10

以下用 find 指令會只列出檔案, 而不列出目錄:

# find /home -type f -printf ‘%s %p\n’| sort -nr | head -10

如要只要計算特定檔案所佔用空間, 可以加入 -iname 參數, 以下是搜索 .mp4 檔案

# find /home -type f -iname “*.mp4” -printf ‘%s %p\n’| sort -nr | head -10


Leave a Reply