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/

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

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