du(disk usage)是經過搜索文件來計算每一個文件的大小而後累加,du能看到的文件只是一些當前存在的,沒有被刪除的。他計算的大小就是當前他認爲存在的全部文件大小的累加和。node
df(disk free)經過文件系統來快速獲取空間大小的信息,當咱們刪除一個文件的時候,這個文件不是立刻就在文件系統當中消失了,而是暫時消失了,當全部程序都不用時,纔會根據OS的規則釋放掉已經刪除的文件, df記錄的是經過文件系統獲取到的文件的大小,他比du強的地方就是可以看到已經刪除的文件,並且計算大小的時候,把這一部分的空間也加上了,更精確了。當文件系統也肯定刪除了該文件後,這時候du與df就一致了。spa
du和df不一致狀況緣由:
常見的df和du不一致狀況就是文件刪除的問題。當一個文件被刪除後,在文件系統 目錄中已經不可見了,因此du就不會再統計它了。然而若是此時還有運行的進程持有這個已經被刪除了的文件的句柄,那麼這個文件就不會真正在磁盤中被刪除,分區超級塊中的信息也就不會更改。這樣df仍舊會統計這個被刪除了的文件。
實際上即便你/home什麼都沒有,df命令依然會顯示佔用了一部分空間的,文件系統的元數據佔了部分空間。
df和du統計的數據是不一樣的:
打個比方,文件是須要放到文件櫃裏的,就算只有一個文件,也要佔用一個文件櫃。文件櫃佔用的空間比文件要大。
df就是統計使用了多少個文件櫃。
du則統計實際有多少個文件。
這樣下來,df算的就大,du就小。
簡單地說,df命令是根據該卷的inode使用情況進行統計的,而du則是累加全部文件的字節數。一個文件就算只有1字節,也要佔用一個inode。進程