簡介
linux系統中檢視檔案空間大小應該是一個非常常見的命令了,今天給大家介紹linux系統中檢視檔案空間的兩種方法和在使用中可能會遇到的奇怪問題.
為什麼會有兩種方法呢? 因為我們可以使用du命令來看空間的佔用情況,也可以使用df來檢視空間的剩餘情況,就像一個硬幣的正反兩面,怎麼用著舒服怎麼來.
話不多說,開始我們今天精彩的內容吧.
du命令
檢視空間大小最直接的命令就是du了, 這個命令的全稱就是disk usage. 表示的是磁碟空間的佔用情況.
先看下du命令的基本語法:
du [-Aclnx] [-H | -L | -P] [-g | -h | -k | -m] [-a | -s | -d depth] [-B blocksize]
[-I mask] [-t threshold] [file ...]
du命令主要用來顯示檔案系統的使用情況,預設情況是顯示當前目錄的資訊,當然也可以指定具體的目錄.
du的引數有很多,這裡就不一一列舉了,這裡我們講一下最常用的一些用法.
其中-h表示是人類可識別的讀法,所以我們一般都會帶上-h.
比如檢視當前目錄的空間使用情況可以用:
# du -ah
上面的命令顯示的是目錄中的所有檔案.如果要將所有的檔案都統計累加的話,那麼可以用:
# du -hs
如果要指定特定的目錄, 直接在後面加上目錄名即可.
如果你又想檢視目錄中具體檔案的大小,又想統計總的大小,那麼可以使用:
du -ch
上面的命令會將總的大小新增在後面.
有時候我們可能發現目錄佔用的空間太大,但是我們又不知道具體是哪個目錄,怎麼辦呢?
du提供了一個--max-depth=1的引數,可以指定統計目錄的層級,大家可以根據需要進行調整,非常的方便.
df命令
df命令和du命令類似,但是他統計的是目錄的剩餘空間.
df的命令如下:
df [-b | -h | -H | -k | -m | -g | -P] [-ailn] [-t] [-T type] [file | filesystem ...]
那麼df和du的統計是不是一致的呢?
大多數情況下是一樣的,但是在某些情況兩者的統計會出現較大的誤差.
大家可能會有過這樣的經歷,就是一個很大的日誌檔案,還在源源不斷的寫入,如果這時候把這個日誌檔案刪除了,會發生什麼情況呢?
對於du來說是統計檔案大小相加,而df是統計資料塊使用情況.
在上面的例子中,雖然檔案刪除了,但是檔案控制程式碼並沒有釋放,所以du的資料顯示檔案已經刪除了,但是df顯示檔案還在.直到這個開啟大檔案的程式被Kill掉。
可以通過下面的命令來檢視檔案的開啟情況:
fuser -u
總結
當然,還有最簡單的ls命令,也可以簡單的檢視檔案的大小.希望大家能夠喜歡.
本文已收錄於 http://www.flydean.com/02-du-and-df/
最通俗的解讀,最深刻的乾貨,最簡潔的教程,眾多你不知道的小技巧等你來發現!
歡迎關注我的公眾號:「程式那些事」,懂技術,更懂你!