理解 Linux 中的 df 和 du 指令
如果你是 Linux 環境的新手,對某些命令感到困惑是很常見的,尤其是當它們具有相似用途時。其中一個混淆點就是 df 和 du 命令,這兩個命令都用於 磁碟空間分析。別擔心,你並不孤單!理解 df 和 du 命令 及其不同的用途對於有效管理 Linux 的磁碟空間非常重要。
在這份適合初學者的指南中,我們將解釋什麼是 df 和 du 命令,以及我們如何使用它們來 分析 Linux 中的磁碟空間。在本文結束時,你將了解 df 和 du 命令之間的區別。
讓我們開始吧!
理解 Linux 中的 df 和 du 指令
df 和 du 命令都用於 Linux 中的磁碟空間分析,但它們有不同的用途。我們首先將討論 df 命令。
1. df 指令
df 命令代表 「磁碟空間剩餘」,用於顯示檔案系統磁碟空間使用情況的資訊。它提供已掛載檔案系統的可用、已使用和總磁碟空間的概覽。它幫助你了解每個分區或檔案系統已使用多少空間以及可用多少空間。
範例:
df -h解釋:
該命令以人類可讀的格式(-h)顯示磁碟空間使用情況,提供有關檔案系統、其總大小、已用空間、可用空間及使用百分比的資訊。
1.1. df 指令範例
以下是一些使用 df 命令的範例及其說明:
1. 基本磁碟空間使用情況:
df範例輸出:
Filesystem 1K-blocks Used Available Use% Mounted on
udev 16191444 0 16191444 0% /dev
tmpfs 3248044 1936 3246108 1% /run
/dev/nvme0n1p2 478096136 186495704 267241008 42% /
tmpfs 16240220 25348 16214872 1% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
/dev/nvme0n1p1 523248 3484 519764 1% /boot/efi
/dev/sda1 976698752 389951104 586747648 40% /media/ostechnix/SK_WD_SSD
/dev/fuse 131072 20 131052 1% /etc/pve
tmpfs 3248044 1644 3246400 1% /run/user/1000解釋:
在不帶任何選項的情況下運行 df 會顯示所有已掛載檔案系統的磁碟空間使用情況。它會顯示諸如檔案系統、總大小、已使用空間、可用空間以及掛載點等資訊。
2。人類可讀輸出:
df -h範例輸出:
Filesystem Size Used Avail Use% Mounted on
udev 16G 0 16G 0% /dev
tmpfs 3.1G 1.9M 3.1G 1% /run
/dev/nvme0n1p2 456G 178G 255G 42% /
tmpfs 16G 25M 16G 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
/dev/nvme0n1p1 511M 3.5M 508M 1% /boot/efi
/dev/sda1 932G 372G 560G 40% /media/ostechnix/SK_WD_SSD
/dev/fuse 128M 20K 128M 1% /etc/pve
tmpfs 3.1G 1.7M 3.1G 1% /run/user/1000
解釋:
加入 -h 選項會使輸出更易讀,以更容易理解的格式顯示大小(例如 KB、MB、GB)。
3。特定檔案系統:
df /dev/sda1範例輸出:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 976698752 389951104 586747648 40% /media/ostechnix/SK_WD_SSD解釋:
指定一個檔案系統,例如 /dev/sda1,可以顯示該檔案系統的磁碟空間使用情況。
4。多重檔案系統:
df /dev/sda1 /dev/sdb1解釋:
您可以將多個檔案系統路徑作為參數提供給 df 命令,以查看它們各自的磁碟空間使用情況。
5。Inode 使用情況:
df -i
範例輸出:
Filesystem Inodes IUsed IFree IUse% Mounted on
udev 4047861 617 4047244 1% /dev
tmpfs 4060055 1122 4058933 1% /run
/dev/nvme0n1p2 30433280 1402561 29030719 5% /
tmpfs 4060055 61 4059994 1% /dev/shm
tmpfs 4060055 14 4060041 1% /run/lock
/dev/nvme0n1p1 0 0 0 - /boot/efi
/dev/sda1 0 0 0 - /media/ostechnix/SK_WD_SSD
/dev/fuse 262144 37 262107 1% /etc/pve
tmpfs 812011 104 811907 1% /run/user/1000解釋:
使用 -i 選項會顯示 inode 使用情況,這會顯示每個檔案系統中已使用和可用 inode 的資訊。
6. 顯示檔案系統類型:
df -T範例輸出:
Filesystem Type 1K-blocks Used Available Use% Mounted on
udev devtmpfs 16191444 0 16191444 0% /dev
tmpfs tmpfs 3248044 1936 3246108 1% /run
/dev/nvme0n1p2 ext4 478096136 186495792 267240920 42% /
tmpfs tmpfs 16240220 25348 16214872 1% /dev/shm
tmpfs tmpfs 5120 4 5116 1% /run/lock
/dev/nvme0n1p1 vfat 523248 3484 519764 1% /boot/efi
/dev/sda1 exfat 976698752 389951104 586747648 40% /media/ostechnix/SK_WD_SSD
/dev/fuse fuse 131072 20 131052 1% /etc/pve
tmpfs tmpfs 3248044 1644 3246400 1% /run/user/1000解釋:
加入 -T 選項會顯示檔案系統類型以及磁碟空間使用資訊。
7。排除虛擬檔案系統:
df -x tmpfs -x devtmpfs範例輸出:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/nvme0n1p2 478096136 186495884 267240828 42% /
/dev/nvme0n1p1 523248 3484 519764 1% /boot/efi
/dev/sda1 976698752 389951104 586747648 40% /media/ostechnix/SK_WD_SSD
/dev/fuse 131072 20 131052 1% /etc/pve解釋:
-x 選項後面接一個或多個檔案系統類型時,會將它們從輸出中排除。在此範例中,我們排除了 tmpfs 和 devtmpfs 檔案系統。
8。顯示檔案系統 Inode 和區塊:
df -i -B M範例輸出:
Filesystem Inodes IUsed IFree IUse% Mounted on
udev 4047861 617 4047244 1% /dev
tmpfs 4060055 1122 4058933 1% /run
/dev/nvme0n1p2 30433280 1402573 29030707 5% /
tmpfs 4060055 61 4059994 1% /dev/shm
tmpfs 4060055 14 4060041 1% /run/lock
/dev/nvme0n1p1 0 0 0 - /boot/efi
/dev/sda1 0 0 0 - /media/ostechnix/SK_WD_SSD
/dev/fuse 262144 37 262107 1% /etc/pve
tmpfs 812011 104 811907 1% /run/user/1000解釋:
將 -i 選項與 -B 選項結合使用可以指定區塊大小,並顯示 inode 和區塊的使用情況。
9. 包含檔案系統類型:
df -t ext4範例輸出:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/nvme0n1p2 478096136 186495964 267240748 42% /解釋:
-t 選項後面跟著檔案系統類型,僅顯示該特定檔案系統類型的磁碟空間使用情況。在此範例中,它顯示 ext4 檔案系統的使用情況。
10. 以 1K 區塊顯示磁碟空間:
df -k範例輸出:
Filesystem 1K-blocks Used Available Use% Mounted on
udev 16191444 0 16191444 0% /dev
tmpfs 3248044 1936 3246108 1% /run
/dev/nvme0n1p2 478096136 186496000 267240712 42% /
tmpfs 16240220 25348 16214872 1% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
/dev/nvme0n1p1 523248 3484 519764 1% /boot/efi
/dev/sda1 976698752 389951104 586747648 40% /media/ostechnix/SK_WD_SSD
/dev/fuse 131072 20 131052 1% /etc/pve
tmpfs 3248044 1644 3246400 1% /run/user/1000解釋:
使用 -k 選項會以 1K 區塊顯示磁碟空間使用情況。
這些範例說明了在 Linux 中可以使用 df 命令獲取磁碟空間使用資訊的各種情況。
現在讓我們來了解 du 指令。
2. du 指令
du 命令代表 「磁碟使用量」,用於估算檔案和目錄的磁碟使用情況。它幫助你確定各個目錄或檔案所佔用的空間,對於識別佔用大量空間的目錄或大型檔案非常有用。
範例:
du -sh /path/to/directory解釋:
該命令計算指定目錄及其子目錄的總磁碟使用量(-s),並以人類可讀格式(-h)顯示。它通過顯示總大小(-h)來提供磁碟使用量的總和。
2.1. du 指令範例
以下是一些使用 du 指令的範例以及它們的說明:
1。目錄的基本磁碟使用量:
du dir1範例輸出:
4400 dir1/dir2
50480 dir1解釋:
執行 du 並跟隨目錄路徑會顯示該目錄(在此例中為 dir1)及其子目錄的磁碟使用情況。
2。人類可讀輸出:
du -h dir1範例輸出:
4.3M dir1/dir2
50M dir1解釋:
加入 -h 選項可以使輸出更易讀,以更容易理解的格式顯示大小(例如 KB、MB、GB)。
3。目錄的總磁碟使用量:
du -sh dir1範例輸出:
50M dir1解釋:
-s 選項提供指定目錄的總磁碟使用量摘要,而不顯示各個子目錄的大小。-h 選項使輸出易於人類閱讀。
4。目前目錄中所有檔案和目錄的磁碟使用情況:
du -h *範例輸出:
4.3M dir2
5.8M document.pdf
116K image.jpeg
4.0K New Empty File
40M video.webm解釋:
使用 du 搭配 * 可以顯示當前目錄中所有檔案和目錄的磁碟使用情況。
5。磁碟使用量按大小排序:
du -sh * | sort -hr範例輸出:
40M video.webm
5.8M document.pdf
4.3M dir2
116K image.jpeg
4.0K New Empty File解釋:
透過將 du 的輸出導入 sort 指令,你可以將磁碟使用量依降冪排序(-r 參數),以便將最大的檔案或目錄顯示在最上方。-h 選項會使輸出易於閱讀。
6。單個文件的磁碟使用情況:
du -h dir1/document.pdf範例輸出:
5.8M dir1/document.pdf解釋:
你可以使用 du 來獲取單個檔案的磁碟使用量,只需提供檔案的路徑作為參數。
7。磁碟使用量(不包括目錄):
du -d 1 -h --exclude=dir2 dir1範例輸出:
45M dir1解釋:
--exclude 選項允許您從磁碟使用量計算中排除特定的目錄。在此範例中,磁碟使用量是針對 dir1 目錄(即父目錄)計算的,排除了指定的目錄,即 dir2。這裡,-d 選項指定要顯示的目錄層級或深度。在這個範例中,-d 1 將輸出限制在僅顯示當前目錄及其直接子目錄。
8。多個目錄的磁碟使用情況:
du -h dir1/ Downloads/解釋:
你可以將多個目錄路徑作為參數提供給 du 指令,以分別獲取每個目錄的磁碟使用量。
9。當前目錄及子目錄的磁碟使用情況:
du -h .解釋:
使用 . 作為 du 的參數會顯示當前目錄及其所有子目錄的磁碟使用情況。
10。最大目錄的磁碟使用情況:
du -h --max-depth=1 dir1 | sort -hr範例輸出:
50M dir1
4.3M dir1/dir2解釋:
透過指定 --max-depth 選項,您可以限制磁碟使用量計算的深度。這相當於 -d 選項。在此範例中,它會顯示指定目錄內頂層目錄的磁碟使用量,並以降序排列。
這些範例展示了在 Linux 中使用 du 指令分析磁碟使用量的不同方式。
現在我們已經探討了 df 和 du 命令,包括它們的定義和範例。我希望你已經對這兩個磁碟空間分析工具有了基本的了解。有了這些知識,我們現在可以將注意力轉向通過範例來檢查 df 和 du 之間的差異。
df 和 du 命令之間的差異
- 目的:
df顯示 已掛載檔案系統的整體磁碟空間使用情況,提供每個分割區可用與已使用空間的概覽。另一方面,du著重於估算 單個目錄或檔案的磁碟使用量,幫助你識別佔用空間的元素。 - 範圍:
df涵蓋整個檔案系統,顯示每個已掛載檔案系統的磁碟空間使用情況,而du則允許您深入分析目錄或檔案級別的磁碟使用情況。 - 用法:
df通常用來監控磁碟空間使用情況並識別潛在的存儲限制,而du則有助於找出對磁碟空間使用有顯著貢獻的目錄或檔案。
範例情境:
假設你有一個具有多個分割區的檔案系統:/dev/sda1 掛載在 /,而 /dev/sda2 掛載在 /home。
運行 df -h 將提供這些已掛載分區的磁碟空間使用情況。相反地,運行 du -sh /home 將估算 /home 目錄及其子目錄的磁碟使用量,幫助你識別 /home 內耗用空間較多的目錄。
總而言之,df 提供了文件系統層級的磁碟空間使用概覽,而 du 則有助於估算目錄或文件層級的磁碟使用量
通過適當使用這兩個命令,你可以了解磁碟空間的使用情況,並有效管理 Linux 中的存儲資源。
常見問題
這裡是關於 df 和 du 命令的常見問題解答。
問:df 指令是用來做什麼的?
A:Linux 中的 df 命令用於顯示檔案系統磁碟空間使用資訊。它提供已掛載檔案系統的總空間、已使用空間和可用空間等詳細資訊。
問:du 指令是用來做什麼的?
A:Linux 中的 du 指令用於估算目錄和檔案的磁碟使用量。它有助於識別各個目錄或檔案所佔用的空間。
問:df 和 du 指令在用途上有什麼不同?
A:df 指令提供檔案系統磁碟空間使用的概覽,顯示總空間、已用空間以及可用空間的資訊。另一方面,du 指令則估算目錄與檔案的磁碟使用情況,允許對目錄和檔案層級進行更詳細的分析。
問:df 和 du 命令可以一起使用嗎?
A:是的,df 和 du 命令用途不同,並且可以結合使用,以獲取有關磁碟空間使用情況的全面資訊。雖然 df 提供的是高層次的概覽,但 du 允許在目錄和檔案層級進行細緻的磁碟使用檢查。
問:我如何使用 df 命令檢查特定檔案系統的磁碟空間使用情況?
A: 您可以使用 df 命令,然後跟上特定檔案系統的路徑,以查看其磁碟空間使用情況。例如:df /dev/sda1。
問:我如何使用 du 指令來檢查特定目錄的磁碟使用情況?
A:要檢查特定目錄的磁碟使用情況,使用 du 命令,後面跟上目錄的路徑。例如:du /path/to/directory
問:我可以從磁碟使用量計算中排除特定的目錄或檔案嗎?
A:是的,df 和 du 命令都提供選項,可以將特定目錄或文件排除在磁碟使用量計算之外。例如,使用 du 時,你可以使用 --exclude 選項,然後跟上目錄或文件名稱,以將其排除在計算之外。
問:df 和 du 指令有其他可用的選項嗎?
A:是的,這兩個命令都提供了額外的選項,允許您自定義輸出。例如,您可以在兩個命令中使用 -h 選項,以人類可讀的格式顯示大小。
問:如何在不包含子目錄的情況下獲取目錄的磁碟使用摘要?
A: 使用 du 指令時,你可以使用 -s 選項來獲取某個目錄的磁碟使用摘要,而不包含子目錄。例如:du -sh /path/to/directory。
問:df 和 du 指令在所有 Linux 發行版上都可用嗎?
A:是的,df 和 du 命令是 Linux 的標準工具,在大多數 Linux 發行版中都可用。然而,具體的選項或輸出格式在不同的發行版之間可能會略有差異。
結論
在本指南中,我們解釋了 df 和 du 命令之間的差異,並提供了範例命令來分析和了解磁碟空間的使用情況。
在 Linux 中管理磁碟空間時,df 和 du 命令扮演著重要角色。如果你是初學者,了解這些命令之間的區別以及它們的實際用法會非常有幫助。
相關閱讀:
- 如何在 Linux 上收集完整的磁碟資訊