星期二, 6月 15, 2010

用du搭配sort來查看磁碟使用空間

du -B M --max-depth=1 | sort -g

du 是查看磁碟空間的指令,若沒有設定好參數,輸出的內容過於詳細而眼花瞭亂,加上沒有排序功能,更難一眼看出哪些目錄佔去空間。

參數是 -B M,意思是統一以 Mega(百萬位元組)為單位來顯示容量,如果沒有搭配這個參數,du 的輸出會自動以 KB 顯示,單位過小,換算不易,換成 MB 為單元在目前是比較適宜的。

而 --max-depth=1 可以把子目錄的容量不顯示出來,但會加總到它的父目錄容量下,如果想要深入了解某個目錄下各個子目錄的情況,可以試著改變 depth 的數值來得到有用的資訊。

du 得到的結果用 pipe 的方式導向給排序指令 sort,如果不排序,du 會照字母順序顯示,一般情況很少這樣用,所以搭配 sort 使用是較佳的方式,至於 sort 後面的參數用 -g 或是 -n 都沒差,都會照大小排好,如果 sort 後面什麼都不加,結果會照字母順序排列。

若想詳細看 /home 目錄的情況,可以在 du 指令後面接目錄名稱,子目錄的層數依然可用 --max-depth 控制。

du -B M --max-depth=1 ./home| sort -g