linux系列之: 你知道查看文件空間的兩種方法嗎?
簡介
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命令,也可以簡單的查看文件的大小.希望大家能夠喜歡.
本文已收錄於 //www.flydean.com/02-du-and-df/
最通俗的解讀,最深刻的乾貨,最簡潔的教程,眾多你不知道的小技巧等你來發現!
歡迎關注我的公眾號:「程式那些事」,懂技術,更懂你!