1. 程式人生 > >Linux中df與du的區別

Linux中df與du的區別

1,兩者區別  du,disk usage,是通過搜尋檔案來計算每個檔案的大小然後累加,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 來掛  檔案及目錄