df 指令:用 -h、-T、-i 選項查看磁碟使用量
df 指令是 Linux 指令,會為每個已掛載的檔案系統各輸出一行總容量、已用空間、可用空間與使用率。在 AlmaLinux 9 伺服器和 Debian 12 伺服器上替 df 逐一加上 -h、-T、-i、--output、-x 選項比較輸出後,磁碟容量改看 Use% 欄,檔案數量上限改看 df -i 的 IUse% 欄,分開確認。
AlmaLinux 9.8 伺服器的輸出中,裝置名稱、磁碟容量,以及依記憶體大小而定的 tmpfs 容量與使用量,都換成了彼此一致的範例值,只存在於那台伺服器的掛載行也已刪除。指令中寫的資料夾路徑同樣是範例值,Debian 12 伺服器的輸出則照原樣列出。
1️⃣ Linux df 指令用法
基本格式是 [df 選項 檔案]。不寫檔案時會輸出所有已掛載的檔案系統,不加選項時以 1,024 位元組的區塊數表示容量。
dfFilesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 1890316 0 1890316 0% /dev
tmpfs 1921072 0 1921072 0% /dev/shm
tmpfs 768432 17104 751328 3% /run
efivarfs 128 4 120 4% /sys/firmware/efi/efivars
/dev/sda4 52403180 10265000 42138180 20% /
/dev/sda3 983040 319488 663552 33% /boot
/dev/sda2 204580 7116 197464 4% /boot/efi
tmpfs 384212 4 384208 1% /run/user/0輸出共六欄,各欄內容如下表。
| 欄位 | 內容 |
|---|---|
| Filesystem | 裝置名稱或檔案系統名稱(tmpfs 等) |
| 1K-blocks | 總容量(1,024 位元組區塊數)· 加 -h 時為 Size |
| Used | 已用容量 |
| Available | 可用容量 · 加 -h 時為 Avail |
| Use% | 使用率 · Used ÷ (Used + Available) 無條件進位 |
| Mounted on | 掛載點(檔案系統所連接的資料夾) |
把裝置連接到資料夾的作業就是 磁碟掛載,若要每次開機自動連接,就寫進 /etc/fstab。
逐行計算 AlmaLinux 9.8 伺服器的輸出後,Use% 等於 Used 除以 Used 與 Available 之和再無條件進位的數字。上方輸出中的根目錄(/),10265000 除以 52403180 得 19.6%,顯示為 20%。
df 收錄在 coreutils 套件中。版本以 [df --version] 的第一行確認,AlmaLinux 9.8 伺服器是 coreutils 8.32,Debian 12 伺服器是 9.1。
df --version | head -n 1df (GNU coreutils) 8.32df --version | head -n 1df (GNU coreutils) 9.12️⃣ df -h 選項
-h 會以 1,024 為單位歸併容量,並加上 K、M、G 輸出。
df -hFilesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 751M 17M 734M 3% /run
efivarfs 128K 3.8K 120K 4% /sys/firmware/efi/efivars
/dev/sda4 50G 9.8G 41G 20% /
/dev/sda3 960M 312M 648M 33% /boot
/dev/sda2 200M 7.0M 193M 4% /boot/efi
tmpfs 376M 4.0K 376M 1% /run/user/0根目錄(/)的 1K 區塊 52403180 變成 50G,已用的 10265000 變成 9.8G。數字是無條件進位後的值,小於 10 時像 9.8G 一樣保留一位小數,10 以上則像 50G 一樣以整數顯示。
-H 以 1,000 而不是 1,024 為單位歸併。
df -HFilesystem Size Used Avail Use% Mounted on
devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 787M 18M 770M 3% /run
efivarfs 132k 3.9k 123k 4% /sys/firmware/efi/efivars
/dev/sda4 54G 11G 44G 20% /
/dev/sda3 1.1G 328M 680M 33% /boot
/dev/sda2 210M 7.3M 203M 4% /boot/efi
tmpfs 394M 4.1k 394M 1% /run/user/0同一個根目錄在 -H 下顯示為 54G,數字比 -h 大,千位單位也變成小寫 k,例如 132k。
寫入檔案或資料夾時,只會輸出包含該路徑的檔案系統那一行。
df -h /root/workFilesystem Size Used Avail Use% Mounted on
/dev/sda4 50G 9.8G 41G 20% //root/work 是位在根目錄(/)中的資料夾,所以出現 /dev/sda4 那一行。每個資料夾佔用的容量則用 du 指令來加總。
在 Debian 12 伺服器上用一般帳號寫入家目錄(~)時,只出現 /dev/vda2 一行,使用率為 52%。
df -h ~Filesystem Size Used Avail Use% Mounted on
/dev/vda2 23G 12G 11G 52% /3️⃣ df -T 檔案系統類型
-T 會在 Filesystem 後加上 Type 欄,輸出檔案系統類型。
df -hTFilesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 751M 17M 734M 3% /run
efivarfs efivarfs 128K 3.8K 120K 4% /sys/firmware/efi/efivars
/dev/sda4 xfs 50G 9.8G 41G 20% /
/dev/sda3 xfs 960M 312M 648M 33% /boot
/dev/sda2 vfat 200M 7.0M 193M 4% /boot/efi
tmpfs tmpfs 376M 4.0K 376M 1% /run/user/0磁碟分割區 /dev/sda4 與 /dev/sda3 是 xfs,/boot/efi 是 vfat。tmpfs 與 devtmpfs 是使用記憶體而非磁碟的檔案系統。
Debian 12 伺服器的根目錄是 ext4。
df -hT ~Filesystem Type Size Used Avail Use% Mounted on
/dev/vda2 ext4 23G 12G 11G 52% /-t 只留下指定的類型,-x 則排除指定的類型後輸出。
df -t xfs -hFilesystem Size Used Avail Use% Mounted on
/dev/sda4 50G 9.8G 41G 20% /
/dev/sda3 960M 312M 648M 33% /boot以 -t xfs 執行後,只剩下兩行 xfs。
df -x tmpfs -hFilesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
efivarfs 128K 3.8K 120K 4% /sys/firmware/efi/efivars
/dev/sda4 50G 9.8G 41G 20% /
/dev/sda3 960M 312M 648M 33% /boot
/dev/sda2 200M 7.0M 193M 4% /boot/efi-x tmpfs 排除了三行 tmpfs,名稱相近的 devtmpfs 則仍然保留。只有類型名稱完全相同的行才會被排除,所以若要連 devtmpfs 一起排除,就再寫一次 -x。
df -x tmpfs -x devtmpfs -hFilesystem Size Used Avail Use% Mounted on
efivarfs 128K 3.8K 120K 4% /sys/firmware/efi/efivars
/dev/sda4 50G 9.8G 41G 20% /
/dev/sda3 960M 312M 648M 33% /boot
/dev/sda2 200M 7.0M 193M 4% /boot/efi4️⃣ df -i inode 使用量
inode是每個檔案和資料夾各使用一個的管理資訊。-i 會輸出 inode 數量而不是容量。
df -iFilesystem Inodes IUsed IFree IUse% Mounted on
devtmpfs 472579 377 472202 1% /dev
tmpfs 480268 2 480266 1% /dev/shm
tmpfs 819200 645 818555 1% /run
efivarfs 0 0 0 - /sys/firmware/efi/efivars
/dev/sda4 26201024 98214 26102810 1% /
/dev/sda3 524288 362 523926 1% /boot
/dev/sda2 0 0 0 - /boot/efi
tmpfs 96053 21 96032 1% /run/user/0Inodes 是可建立的總數,IUsed 是已用數量,IFree 是剩餘數量,IUse% 是使用率。vfat 的 /boot/efi 與 efivarfs 的 inode 數為 0,所以 IUse% 顯示為 -。
每建立一個檔案就會用掉一個 inode,因此 IUse% 到達 100% 時,即使 Use% 很低也無法再建立新檔案。若伺服器會累積大量小檔案,就要一起查看 [df -h] 與 [df -i]。
再加上 -h 後,數量也會以 K、M 為單位歸併,根目錄的 26201024 個顯示為 25M。
df -ihFilesystem Inodes IUsed IFree IUse% Mounted on
devtmpfs 462K 377 462K 1% /dev
tmpfs 470K 2 470K 1% /dev/shm
tmpfs 800K 645 800K 1% /run
efivarfs 0 0 0 - /sys/firmware/efi/efivars
/dev/sda4 25M 96K 25M 1% /
/dev/sda3 512K 362 512K 1% /boot
/dev/sda2 0 0 0 - /boot/efi
tmpfs 94K 21 94K 1% /run/user/0Debian 12 伺服器在 6285088 個 inode 中用了 188009 個,IUse% 為 3%。
df -i ~Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/vda2 6285088 188009 6097079 3% /5️⃣ df --output 指定輸出欄位
--output 可直接決定要輸出的欄位與順序。欄位名稱以逗號串接,可用的名稱是下表的十二種(依 --help)。
| 欄位名稱 | 標題 | 內容 |
|---|---|---|
| source | Filesystem | 裝置名稱 / 檔案系統名稱 |
| fstype | Type | 檔案系統類型 |
| itotal | Inodes | inode 總數 |
| iused | IUsed | 已用 inode 數 |
| iavail | IFree | 剩餘 inode 數 |
| ipcent | IUse% | inode 使用率 |
| size | Size | 總容量 |
| used | Used | 已用容量 |
| avail | Avail | 可用容量 |
| pcent | Use% | 使用率 |
| file | File | 指令中寫的檔案名稱 |
| target | Mounted on | 掛載點 |
df --output=source,fstype,size,used,avail,pcent,target -hFilesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 751M 17M 734M 3% /run
efivarfs efivarfs 128K 3.8K 120K 4% /sys/firmware/efi/efivars
/dev/sda4 xfs 50G 9.8G 41G 20% /
/dev/sda3 xfs 960M 312M 648M 33% /boot
/dev/sda2 vfat 200M 7.0M 193M 4% /boot/efi
tmpfs tmpfs 376M 4.0K 376M 1% /run/user/0依序寫入七個欄位後,得到與 [df -hT] 相同的輸出。
df --output=target,pcent,avail -hMounted on Use% Avail
/dev 0% 1.9G
/dev/shm 0% 1.9G
/run 3% 734M
/sys/firmware/efi/efivars 4% 120K
/ 20% 41G
/boot 33% 648M
/boot/efi 4% 193M
/run/user/0 1% 376M依 target、pcent、avail 的順序寫入欄位名稱後,掛載點排到最前面,使用率與可用容量依序接在後面。
--total 會在最下方加上合計行。
df -h --totalFilesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 751M 17M 734M 3% /run
efivarfs 128K 3.8K 120K 4% /sys/firmware/efi/efivars
/dev/sda4 50G 9.8G 41G 20% /
/dev/sda3 960M 312M 648M 33% /boot
/dev/sda2 200M 7.0M 193M 4% /boot/efi
tmpfs 376M 4.0K 376M 1% /run/user/0
total 56G 11G 46G 19% -total 行是上方八行全部相加的值,所以像 tmpfs 這樣使用記憶體的檔案系統也被加進去了。
🔲 df 指令模擬器
在下方的模擬器中,可以替 df 加上 -h、-H、-T、-i、-t、-x、--output、--total 執行,查看每個選項下輸出欄位如何變化。
6️⃣ df 指令錯誤
寫入不存在的路徑時出現 [No such file or directory],並以結束代碼 1 結束。
df -h /nonexistent-dirdf: /nonexistent-dir: No such file or directory替 -t 寫入伺服器上沒有的類型時,沒有任何一行可輸出,於是出現 [no file systems processed],結束代碼為 1。
df -t nosuchfsdf: no file systems processed替 --output 寫入不存在的欄位名稱時,該名稱會出現在錯誤訊息中。
df --output=bogusdf: option --output: field 'bogus' unknown
Try 'df --help' for more information.把 -i 或 -T 與 --output 一起寫入時出現 [mutually exclusive],並以同樣的結束代碼 1 結束。若要用 --output 查看 inode 或類型,請寫入 itotal、fstype 這類欄位名稱。
df -i --outputdf: options -i and --output are mutually exclusive
Try 'df --help' for more information.🔢 FAQ & 推薦內容
ℹ️ 聯盟行銷說明
本站內容包含聯盟行銷連結。訪客透過這些連結購買商品或服務時,本站會從賣家獲得佣金。在這個過程中,購買者支付的金額(遇到活動折扣時金額會降低↓)並不會因此提高。刊登的價格、折扣與庫存資訊以撰寫當時為準,可能與實際情況不同,購買前請向賣家做最後確認。商品的挑選與評價依本站自訂的標準撰寫,是否支付佣金不會影響介紹順序或評價內容。