Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux 磁碟與目錄大小查看全攻略:df、du、ls -h 參數詳解與實戰技巧

編輯:Linux 教學

磁碟空間不足時,df(檔案系統級)與 du(目錄/檔案級)是黃金搭檔。本文系統整理兩者參數、差異、組合使用技巧,並補充 ls -h、統計檔案數等實用技巧。

df — 檔案系統整體使用情況


df -h
# Filesystem      Size  Used Avail Use% Mounted on
# /dev/vda1        20G  2.6G   17G  14% /
# tmpfs           972M     0  972M   0% /dev/shm
  • -h / -H:人類可讀單位(K/M/G,1024/1000 進制)。
  • -T:顯示檔案系統類型(ext4、xfs、nfs...)。
  • -i:顯示 inode 使用率(大量小檔案場景關鍵)。
  • --output=source,size,used,avail,pcent,target:自訂欄位,適合腳本解析。

du — 目錄/檔案實際佔用空間


# 顯示 /home/wwwroot 下一級目錄大小(人類可讀)
du -h --max-depth=1 /home/wwwroot
# 10M /home/wwwroot/domains.com
# 20M /home/wwwroot/domains2.com
# 40M /home/wwwroot
  • -h:人類可讀單位。
  • -s / --summarize:僅顯示總計,不列出子目錄。
  • --max-depth=N:限制遞歸深度(-d N 於 BSD/macOS)。
  • -a / --all:包含檔案(預設僅目錄)。
  • -c / --total:最後顯示總計行。
  • --exclude=PATTERN:排除模式(如 --exclude='*.log')。

df vs du 核心差異(常見面試題/排查陷阱)

維度dfdu
統計對象檔案系統塊檔案/目錄大小總和
已刪除開啟檔案**計入已用**(塊未釋放)**不計入**(目錄項已移除)
掛載點遮蔽顯示掛載後可見空間遞歸掃描,受掛載點影響
稀疏檔案計實際分配塊計視邏輯大小(可用 --apparent-size)

場景:rm /var/log/big.log 但進程仍寫入 → df 仍顯示滿,du 顯示釋放。需 lsof | grep deleted 找到進程重啟或 > /proc/pid/fd/n 釋放。

實戰組合招


# 1. 找出根分區佔用前 10 大目錄
du -h --max-depth=1 / | sort -hr | head -10

# 2. 統計當前目錄下每個一級項目大小(MB),按數值排序
du -m --max-depth=1 | sort -nr

# 3. 查看某用戶家目錄大小
du -sh /home/username

# 4. 統計目錄下檔案總數(含子目錄)
find /path -type f | wc -l
# 或
du /path | wc -l   # 近似值,含目錄行

# 5. ls 以 K/M/G 顯示檔案大小
ls -lh
# -rw-r--r-- 1 root root 30M May 24 10:07 cuss.war

進階:inode 耗盡排查


df -i
# 找出 inode 佔用最多的目錄
find / -xdev -printf '%h\n' | sort | uniq -c | sort -nr | head -10

熟練掌握 df/du/ls 三劍客,磁碟空間排查不再盲目。

Copyright © Windows教程網 All Rights Reserved