Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Linux 目錄與磁碟大小查詢:du 與 df 差異深度解析與實戰技巧

編輯:Linux 系統常見問題解答

查目錄大小用 du、查磁碟剩餘用 df,但兩者數字常不一致。搞懂底層統計差異,才能正確解讀儲存空間報表。

核心差異:統計視角不同

指令統計對象包含內容不包含
du (Disk Usage)檔案系統使用者可見資料所有檔案、目錄、符號連結實際佔用的區塊總和中繼資料(inode 表、超級區塊、間接區塊、日誌區塊等)
df (Disk Free)檔案系統區塊分配圖已分配區塊總數 = 使用者資料 + 所有中繼資料未分配區塊

為何 df > du?

# 範例:/tmp 掛載獨立分區
du -s /tmp     # 12920 區塊(使用者資料)
df /tmp        # 總 57344,剩 42208,已用 = 15136 區塊
差異 = 15136 - 12920 = 2216 區塊 = 中繼資料開銷

空檔案系統也佔用區塊:inode 表、超級區塊、位圖、日誌等。du 看不到,df 算進去。

特殊情況:刪除開啟中的檔案

  • du:立即反映檔案消失,大小減少
  • df:不釋放空間,直到持有檔案的進程關閉檔案描述符
  • 排查:lsof | grep deleted 找出佔用空間的「幽靈檔案」進程

實戰常用指令速查

需求指令說明
顯示目錄大小(人類可讀)du -sh /path-s 只顯總計,-h 人類單位
列出各子目錄大小並排序du -h --max-depth=1 /path | sort -hr快速找出佔空間大戶
顯示檔案系統使用率df -h-h 人類單位,含掛載點
顯示 inode 使用率df -hi大量小檔案場景必看
查看當前目錄各檔案大小ls -lhS按大小降序
配額查看(啟用 quota 時)quota -v用戶/群組配額

進階:ncdu 互動式分析神器

sudo apt install ncdu
ncdu /path
# 鍵盤導航:↑↓ 選擇、Enter 進入、d 刪除、g 切換單位、q 退出

比 du | sort 直觀百倍,大目錄分析首選。

總結

  • df 看磁碟「實際剩餘容量」(含中繼資料)
  • du 看資料「邏輯佔用大小」
  • 差值 = 中繼資料 + 幽靈檔案(已刪未關)
  • 空間不足時,先 df -hi 排除 inode 耗盡,再 ncdu 定位大目錄

釐清 du/df 語義,磁碟空間排查不再霧裡看花。

Copyright © Windows教程網 All Rights Reserved