Linux下du加強版,靈活快速定位硬碟使用情況,無需安裝
阿新 • • 發佈:2019-02-17
du命令檢視使用空間,對檔案和目錄磁碟使用的空間的檢視。
du [選項][檔案]
-a或-all 顯示目錄中個別檔案的大小。 -b或-bytes 顯示目錄或檔案大小時,以byte為單位。 -c或--total 除了顯示個別目錄或檔案的大小外,同時也顯示所有目錄或檔案的總和。 -k或--kilobytes 以KB(1024bytes)為單位輸出。 -m或--megabytes 以MB為單位輸出。 -s或--summarize 僅顯示總計,只列出最後加總的值。 -h或--human-readable 以K,M,G為單位,提高資訊的可讀性。 -x或--one-file-xystem 以一開始處理時的檔案系統為準,若遇上其它不同的檔案系統目錄則略過。 -L<符號連結>或--dereference<符號連結> 顯示選項中所指定符號連結的原始檔大小。 -S或--separate-dirs 顯示個別目錄的大小時,並不含其子目錄的大小。 -X<檔案>或--exclude-from=<檔案> 在<檔案>指定目錄或檔案。 --exclude=<目錄或檔案> 略過指定的目錄或檔案。 -D或--dereference-args 顯示指定符號連結的原始檔大小。 -H或--si 與-h引數相同,但是K,M,G是以1000為換算單位。 -l或--count-links 重複計算硬體連結的檔案。
下面介紹du加強版
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo "統計目錄下各檔案及目錄的大小"
echo "sh $0 引數1(目錄)"
echo " 引數2 遍歷深度(預設0)"
echo " 引數3 Y/N 是否顯示極小檔案"
echo "統計目錄下各檔案及目錄的大小"
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
#/bin/bash # by llhl echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" echo "統計目錄下各檔案及目錄的大小" echo "sh $0 引數1(目錄)" echo " 引數2 遍歷深度(預設0)" echo " 引數3 Y/N 是否顯示極小檔案" echo "統計目錄下各檔案及目錄的大小" echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" level=$2 function secho() { times=$1 while [ $times -gt 0 ]; do echo -e " \c" times=$((times - 1)) done } function showBigFile() { result=$( echo $1 | grep "^.*K ") if [[ "$result" != "" ]] then echo -e "\c" else resultSub=$( echo $1 | grep "^0 ") if [[ "$resultSub" != "" ]] then echo -e "\c" else echo $1 fi fi } function grepBigFile() { result=$( echo $1 | grep $2 ) if [[ "$result" != "" ]] then return "" else return $1 fi } function echoSize() { d_f_size=`du -sh $1` if [[ $2 == 'Y' ]] then echo $d_f_size else showBigFile "$d_f_size" fi } function size() { for element in `ls -AXrS $1` do if [ $1 == "/" ] then dir_or_file=$1$element else dir_or_file=$1"/"$element fi if [ -d $dir_or_file -a $2 -gt 0 ] then size $dir_or_file $[$2-1] $3 else secho $[$level-$2] echoSize $dir_or_file $3 fi done } function main() { size $1 $2 $3 } main ${1:-'/'} ${2:-0} ${3:-'Y'} echo ""