Linux df/du 檢查磁碟與檔案空間使用量

當 Linux 伺服器發出「硬碟空間不足」的警報時,你需要這兩個指令來找出兇手。

  • df:從「檔案系統 (File System)」的角度,看整體剩餘空間
  • du:從「檔案 (File)」的角度,計算佔用空間

df:檢查磁碟剩餘空間

直接執行 df 看到的數字單位是 1K-blocks,很難看懂。 務必加上 -h (human-readable)。

df -h

輸出範例:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        50G   45G  5.0G  90% /
tmpfs           4.0G     0  4.0G   0% /run/user/1000

Mounted on/ (根目錄) 的那一行,Use% 達到了 90%,代表快滿了!

du:檢查目錄佔用大小

知道快滿了,那是誰佔用了空間?這時候要用 du。 同樣建議搭配 -h

1. 檢查目前目錄的總大小 (-s)

-s (summarize) 代表只顯示總計,不要列出每一個子檔案。

# 檢查目前目錄佔了多大
du -sh .

輸出:4.2G .

2. 找出哪個子目錄最大

如果你想看當前目錄下,每一個子資料夾的大小:

du -h --max-depth=1
# 或者簡寫
du -h -d 1

3. 實戰技巧:找出前 5 大的資料夾

我們可以搭配 sort 指令來排序。 因為 du -h 的單位 (K, M, G) 很難直接排序,建議用 du -k (KB單位) 或 du -m (MB單位) 來排序。

# 列出當前目錄下最大的 5 個資料夾
du -m --max-depth=1 | sort -nr | head -n 5