1. 程式人生 > >Linux中檢視磁碟空間使用情況命令df與du的區別

Linux中檢視磁碟空間使用情況命令df與du的區別

1、兩者區別 
du,disk usage of each file,是通過搜尋檔案來計算每個檔案的大小然後累加,du能看到的檔案只是一些當前存在的,沒有被刪除的。他計算的大小就是當前他認為存在的所有檔案大小的累加和。
df,disk free,通過檔案系統來快速獲取空間大小的資訊,當我們刪除一個檔案的時候,這個檔案不是馬上就在檔案系統當中消失了,而是暫時消失了,當所有程式都不用時,才會根據OS的規則釋放掉已經刪除的檔案, df記錄的是通過檔案系統獲取到的檔案的大小,他比du強的地方就是能夠看到已經刪除的檔案,而且計算大小的時候,把這一部分的空間也加上了,更精確了。
當檔案系統也確定刪除了該檔案後,這時候du與df就一致了。

2,du檢視目錄大小,df檢視磁碟使用情況。
我常使用的命令(必要時,sudo使用root許可權),
1).檢視某個目錄的大小:du -hs /home/master/documents
檢視目錄下所有目錄的大小並按大小降序排列:sudo du -sm /etc/* | sort -nr | less
2).檢視磁碟使用情況(檔案系統的使用情況):sudo df -h
df --block-size=GB
-h是使輸出結果更易於人類閱讀;du -s只展示目錄的使用總量(不分別展示各個子目錄情況),-m是以 
MB為單位展示目錄的大小(當然-k/-g就是KB/GB了)。

3,du使用詳細案例
a:顯示全部目錄和其次目錄下的每個檔案所佔的磁碟空間
s:只顯示各檔案大小的總合 
b:大小用bytes來表示
x:跳過在不同檔案系統上的目錄不予統計
a:遞迴地顯示指定目錄中各檔案及子孫目錄中各檔案佔用的資料塊數
...
使用du進行檢視

[email protected]:/home/htmlfile# du
16 ./test
60 ./bbb
84 .

其中第一列是以塊為單位計的磁碟空間容量,第二列列出目錄中使用這些空間的目錄名稱
1)檢視當前目錄包含子目錄的大小
[email protected]:/home/htmlfile# du -sm .
1 .
其中的du -sm . 的“.”是代表當前目錄。
2)檢視當前目錄以及子目錄的大小
[email protected]:/home/htmlfile# du -h
16K ./test
60K ./bbb
84K .
其中 -h 表示使用K,M,G的人性化形式顯示。
3)看到當前目錄下的bbb目錄大小,但不想檢視其他目錄以及子目錄

[email protected]:/home/htmlfile# du -ch bbb | tail -n 1
60K total
使用了管道包含了du和tail兩個命令,-c表示最後計算出所列目錄的大小之和。
4)列出當前目錄下所有目錄和檔案的大小
[email protected]:/home/htmlfile# du -ah bbb
4.0K bbb/mysql.php
4.0K bbb/index.htm
4.0K bbb/p.php
28K bbb/memcache.php
12K bbb/.session.php.swp
4.0K bbb/hello.html
60K bbb
其中-a表示包含目錄和檔案
5)不換行列出目錄以及子目錄大小的資訊
[email protected]:/home/htmlfile# du -0h
16K ./test60K ./bbb84K [email protected]:/home/htmlfile# 
其中 -0 表示列出一條資訊後不換行,接著輸出第二條資訊。

4,df詳細案例
a:顯示全部的檔案系統和各分割區的磁碟使用情形
i:顯示i -nodes的使用量
k:大小用k來表示 (預設值)
t:顯示某一個檔案系統的所有分割區磁碟使用量
x:顯示不是某一個檔案系統的所有分割區磁碟使用量
T:顯示每個分割區所屬的檔案系統名稱 
使用df進行檢視
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/cciss/c0d0p1 2068156 611572 1351528 32% /
tmpfs 1038080 4 1038076 1% /lib/init/rw
udev 10240 64 10176 1% /dev
tmpfs 1038080 4 1038076 1% /dev/shm
/dev/cciss/c0d0p9 130700120 44034236 86665884 34% /home
/dev/cciss/c0d0p7 2068156 68932 1999224 4% /tmp
/dev/cciss/c0d0p8 4132372 1760620 2161840 45% /usr
/dev/cciss/c0d0p6 2068156 330104 1632996 17% /var
第一行是檔案系統對應的硬碟分割槽
第二行是分割槽包含的資料塊的資料(1資料庫為1024位元組)
第三四行是已用和未用的資料塊陣列
第五行是普通使用者空間使用的百分比
第六行是檔案系統的安裝點
其中第三四行已用和未用資料塊相加並不等於第二行總資料塊,這是因為分割槽留了少量空間提供給
系統管理員使用。
1)
[email protected]:~$ df -h
檔案系統 容量 已用 可用 已用% 掛載點
/dev/cciss/c0d0p1 2.0G 598M 1.3G 32% /
tmpfs 1014M 4.0K 1014M 1% /lib/init/rw
udev 10M 64K 10M 1% /dev
tmpfs 1014M 4.0K 1014M 1% /dev/shm
/dev/cciss/c0d0p9 125G 42G 83G 34% /home
/dev/cciss/c0d0p7 2.0G 68M 2.0G 4% /tmp
/dev/cciss/c0d0p8 4.0G 1.7G 2.1G 45% /usr
/dev/cciss/c0d0p6 2.0G 333M 1.6G 18% /var
其中 -h 表示使用K,M,G的人性化形式顯示。
2)
[email protected]:~$ df -ia
檔案系統 Inode (I)已用 (I)可用 (I)已用% 掛載點
/dev/cciss/c0d0p1 262752 60150 202602 23% /
tmpfs 224142 10 224132 1% /lib/init/rw
proc 0 0 0 - /proc
sysfs 0 0 0 - /sys
procbususb 0 0 0 - /proc/bus/usb
udev 224142 770 223372 1% /dev
tmpfs 224142 3 224139 1% /dev/shm
devpts 0 0 0 - /dev/pts
/dev/cciss/c0d0p9 130763968 1972907 128791061 2% /home
/dev/cciss/c0d0p7 262752 54 262698 1% /tmp
/dev/cciss/c0d0p8 524832 35743 489089 7% /usr
/dev/cciss/c0d0p6 262752 4896 257856 2% /var
所謂的 inode 是用來存放檔案及目錄的基本資訊,包含時間、檔名、使用者及群組等。在分割扇區 
時,系統會先做出一堆 inode 以供以後使用,inode 的數量關係著系統中可以建立的檔案及目錄總數。 
如果要存的檔案大部分都很小,則同樣大小的硬碟中會有較多的檔案,也就是說需要較多的 inode 來掛 
檔案及目錄