linux系列之: 你知道檢視檔案空間的兩種方法嗎?

flydean發表於2021-11-10

簡介

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/

最通俗的解讀,最深刻的乾貨,最簡潔的教程,眾多你不知道的小技巧等你來發現!

歡迎關注我的公眾號:「程式那些事」,懂技術,更懂你!

相關文章