du(Disk Usage)專注於文件/目錄級別的磁盤佔用統計,與 df(文件系統級)互補。本文匯總 10 大高頻實例,涵蓋基本查看、指定深度、排序、總計、人類可讀格式等,助你快速定位空間佔用大戶。
du [選項] [文件/目錄...]
| 參數 | 說明 |
|---|---|
-a, --all | 顯示文件大小(預設僅目錄) |
-h, --human-readable | K/M/G 易讀單位 |
-s, --summarize | 僅顯示總計 |
-c, --total | 顯示總計行 |
-k / -m | 強制 KB/MB 單位 |
-S, --separate-dirs | 目錄大小不含子目錄 |
-d, --max-depth=N | 限制遞歸深度(GNU 核心工具 8.21+) |
--exclude=模式 | 排除匹配文件/目錄 |
-L, --dereference | 解析符號鏈接至源文件大小 |
du
# 608 ./test6
# 308 ./test4
# 1288 .
du log2012.log
# 300 log2012.log
du scf
# 32 scf
du log30.tar.gz log31.tar.gz
# 4 log30.tar.gz
# 4 log31.tar.gz
du -s
# 1288 .
du -s scf
# 32 scf
du -h test
# 608K test/test6
# 308K test/test4
# 1.3M test
du -ah test
# 4.0K test/log31.tar.gz
# 300K test/log2012.log
# 1.3M test
du -c log30.tar.gz log31.tar.gz
# 4 log30.tar.gz
# 4 log31.tar.gz
# 8 總計
du | sort -nr | head -10
# 1288 .
# 608 ./test6
# 308 ./test4
# 32 ./scf
...
du -h --max-depth=1
# 608K ./test6
# 308K ./test4
# 32K ./scf
# 8.0K ./test3
# 1.3M .
| 維度 | du | df |
|---|---|---|
| 統計對象 | 文件/目錄 | 文件系統/分區 |
| 已刪除但被進程持有的文件 | 不計入 | 計入(空間未釋放) |
| 掛載點遮蓋的目錄 | 計入 | 不計入 |
| 稀疏文件 | 計算實際佔用 | 計算表觀大小 |
排查「df 顯示滿但 du 顯示小」時,常用 lsof | grep deleted 找被刪除仍佔用空間的進程。
