天天看點

linux 擷取指定目錄最大深度(層數)

腳本名:du_folder2.sh

腳本内容:

#!/bin/sh

if [ -z "$1"  ];then

    echo "no argument";

exit 255

fi

depth_foler()

{

this_dir=`pwd`

source_folder="$1"

source_folder=`echo $source_folder |sed 's#/$##g'`

test_folder="$2"

cd $test_folder

count=0

while [ ! `pwd` = $source_folder ]

do

count=`expr $count + 1`

cd ..

done

cd $this_dir

return $count

}

#echo $?

target_folder="$1"

depth_max=1

for i in `find "$target_folder" -type d` ;do

if [ -d $i -a ! $i = $target_folder ];then

depth_foler "$target_folder" "$i"

retval=$?

if [ $depth_max -lt $retval ];then

                        depth_max=$retval

                fi

# echo "$i --depth: $retval"

echo "max depth:$depth_max"

測試:

執行du_folder2.sh  ./

結果是指定目錄 ./ 的深度

執行個體:

[root@localhost du_study2]# ./du_folder2.sh  /home/whuang/du_study2 

max depth:2

[root@localhost du_study2]# du

4 ./ccc

4 ./test/abc

8 ./test

36 .

[root@localhost du_study2]# 

說明:使用du 指令可以驗證上面腳本的正确性。

繼續閱讀