1. 程式人生 > >linux中du與df的區別和聯系

linux中du與df的區別和聯系

roc 換行 -h lib 文件占用 use .html -m 詳細

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 來掛
檔案及目錄

linux中du與df的區別和聯系