linux目录最大深度,linux 获取指定目录最大深度(层数)02

脚本名:du_folder4.sh

脚本内容:

#!/bin/sh

folder_name="$1"

if [ ! -d "$folder_name" ];then

echo "The dir(\"${folder_name}\") does not exist!"

exit 3

fi

this_dir_tmp=`pwd`

# ./test(relative path) --->/home/whuang/du_study2/test

folder_name=`echo "$folder_name"|sed "s#^./#$this_dir_tmp/#g"`

# test(relative path) --->/home/whuang/du_study2/test

folder_name=`echo "$folder_name"|sed "s#^\([a-zA-Z]\+.*\)#$this_dir_tmp/\1#g"`

#----------------------------

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

}

target_folder="$folder_name"

depth_max=1

for i in `du "$target_folder"` ;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

fi

done

echo "max depth: $depth_max"

执行范例:

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

max depth: 3

[root@localhost du_study2]#./du_folder4.sh  ./test

max depth: 3

[root@localhost du_study2]# ./du_folder4.sh  test

max depth: 3

[root@localhost du_study2]# du test

4test/bbb/aaa/ccc

8test/bbb/aaa

12test/bbb

16test

说明:可以使用du 命令 来验证脚本du_folder4.sh的正确性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值