Linux如何找出佔用較大空間的檔案

最近家中的linux突然磁碟空間爆增!!!

到底是什麼檔案佔用了這些空間?

在找出大檔案時,又怎麼知道Linux剩餘磁碟空間呢?

 df -h 就可以很清楚知道目前磁碟空間是使用多少了

至於如何找到佔用的檔案,可以利用以下指令

du: 計算目錄所使用的空間
sort: 將輸入的資料排序
head: 將輸入資料的最開頭幾行資料輸出

像如要找到home下最大前5名如下

du -a /home | sort -n -r | head -n 5

至於要找到磁碟佔用最大的檔案呢?

方式有好幾種:

第一種方式:

像是我們可以先至根目錄下利用

指令 du -h --max-depth=1

max-depth是表示查詢子目錄的層級

就可查到目錄佔用的情形,再到較大的目錄,重覆利用此指令去找出佔用較大的檔案

第二種方式:

 利用 find指令如

 find / -type f -size +5G

 我們可以利用此種方式找出大於5G 的檔案

第三種方式:

find / -type f -exec du {} \; 2>/dev/null |
 sort -n | tail -n 10 | xargs -n 1 du -h 2>/dev/null

"find / -type f" 的意思是「搜尋根目錄中的所有檔案」。

-exec du {} \;" 代表「每個找到的檔案都用 du 指令執行以取得以 bytes 為單位的檔案大小資訊」。

"2>/dev/null" 是指將所有的錯誤訊息丟棄。

"sort -n" 會將所有的檔案依大小列出,

 "tail -n 10" 則是顯示最後 10 筆,兩個指令合起來就會顯示出依大小排序的前 10 大檔案