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 命令完全指南

編輯:Linux 教學

Linux 系統管理中,快速定位磁碟空間佔用情況是基本功。df 看分區整體,du 看目錄細節,兩者配合才能精準定位「空間去哪兒了」。

1. df - 檔系統級整體視野

$ df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/vg-root      15G   3.2G   11G  23% /
tmpfs                   246M     0  246M   0% /dev/shm
/dev/sda1               485M   94M  366M  21% /boot
/dev/mapper/vg-opt      11G  155M  9.8G   2% /opt

常用參數

  • -h:人類可讀單位 (K/M/G),以 1024 為基數。
  • -H:以 1000 為基數 (廠商標示單位)。
  • -T:顯示檔案系統類型 (ext4, xfs, tmpfs...)。
  • -i:顯示 inode 使用率 (關鍵!inode 滿會導致無法建檔,即使空間尚餘)。

2. du - 目錄級精準定位

$ du -h -s /home/* | sort -h
16K   /home/lost+found
26M   /home/nagios
1.3G  /home/testuser

核心參數組合

  • -h:人類可讀單位。
  • -s (--summarize):僅顯示總計,不遞歸列出子目錄。
  • -d N (--max-depth=N):限制遞歸深度,如 du -h -d 1 /var 只看一級子目錄。
  • --exclude=PATTERN:排除特定目錄(如 --exclude=*.log)。
  • | sort -h:人類可讀單位排序,快速找出最大目錄。

3. 進階組合招:找出佔空間大戶

# 找出根分區下前 10 大目錄
du -h -d 1 / | sort -hr | head -10

# 找出 /var/log 下超過 100M 的檔案
find /var/log -type f -size +100M -exec ls -lh {} \;

# 找出已刪除但仍被進程佔用的檔案 (空間未釋放)
lsof | grep deleted

4. 常見陷阱與避坑指南

  • df vs du 不一致: 檔案被刪除但進程仍持有開啟句柄,df 顯示已用,du 掃不到。用 lsof | grep deleted 找出進程重啟釋放。
  • 掛載點遮蔽: 目錄被掛載覆蓋,du 掃不到原數據。用 mount --bind / /mnt 掛載根目錄繞過掛載點檢查。
  • 稀疏檔案: du 顯示實際佔用塊數,ls -l 顯示邏輯大小,稀疏檔案兩者差異巨大。
  • inode 耗盡: 大量小檔案導致 inode 滿,df -i 排查,清理大量小檔目錄(如郵件隊列、Session 檔、快取)。

5. 圖形化替代工具

  • ncdu:終端機互動式磁碟分析神器,apt install ncdu。
  • baobab (GNOME Disks)、Filelight (KDE):圖形化磁碟使用率視覺化。

速查卡

需求命令
查看所有分區使用率df -hT
查看 inode 使用率df -hi
查看當前目錄各子目錄大小du -h --max-depth=1
找出當前目錄下最大的 5 個檔案/目錄du -h * | sort -hr | head -5
查看特定掛載點 inode 詳情df -i /mount/point

熟練掌握 df 與 du 的組合招,讓磁碟空間不再是黑盒,隨時掌握存儲脈動。

Copyright © Windows教程網 All Rights Reserved