萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux du 命令實戰匯總:目錄/文件磁盤佔用分析、排序、人類可讀、總計統計

du(Disk Usage)專注於文件/目錄級別的磁盤佔用統計,與 df(文件系統級)互補。本文匯總 10 大高頻實例,涵蓋基本查看、指定深度、排序、總計、人類可讀格式等,助你快速定位空間佔用大戶。

一、命令格式與核心參數

du [選項] [文件/目錄...]
參數說明
-a, --all顯示文件大小(預設僅目錄)
-h, --human-readableK/M/G 易讀單位
-s, --summarize僅顯示總計
-c, --total顯示總計行
-k / -m強制 KB/MB 單位
-S, --separate-dirs目錄大小不含子目錄
-d, --max-depth=N限制遞歸深度(GNU 核心工具 8.21+)
--exclude=模式排除匹配文件/目錄
-L, --dereference解析符號鏈接至源文件大小

二、10 大實戰範例

1. 當前目錄遞歸顯示所有子目錄大小

du
# 608 ./test6
# 308 ./test4
# 1288 .

2. 指定文件大小

du log2012.log
# 300 log2012.log

3. 指定目錄大小

du scf
# 32 scf

4. 多文件大小

du log30.tar.gz log31.tar.gz
# 4 log30.tar.gz
# 4 log31.tar.gz

5. 僅顯示總計

du -s
# 1288 .
du -s scf
# 32 scf

6. 人類可讀格式(推薦)

du -h test
# 608K test/test6
# 308K test/test4
# 1.3M test

7. 文件+目錄全顯示

du -ah test
# 4.0K test/log31.tar.gz
# 300K test/log2012.log
# 1.3M test

8. 顯示總計行

du -c log30.tar.gz log31.tar.gz
# 4 log30.tar.gz
# 4 log31.tar.gz
# 8 總計

9. 按大小排序(配合 sort)

du | sort -nr | head -10
# 1288 .
# 608 ./test6
# 308 ./test4
# 32 ./scf
...

10. 限制深度(僅一級子目錄)

du -h --max-depth=1
# 608K ./test6
# 308K ./test4
# 32K ./scf
# 8.0K ./test3
# 1.3M .

三、du vs df 關鍵差異

維度dudf
統計對象文件/目錄文件系統/分區
已刪除但被進程持有的文件不計入計入(空間未釋放)
掛載點遮蓋的目錄計入不計入
稀疏文件計算實際佔用計算表觀大小

排查「df 顯示滿但 du 顯示小」時,常用 lsof | grep deleted 找被刪除仍佔用空間的進程。

du 命令磁盤分析示意圖

copyright © 萬盛學電腦網 all rights reserved