`

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

4 test/bbb/aaa/ccc

8 test/bbb/aaa

12 test/bbb

16 test

 

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

分享到:
评论

相关推荐

    Linux 打印堆栈方法

    获取当前的调用栈信息,结果存储在buffer中,返回值为栈的深度,参数size限制栈的最大深度,即最大取size步的栈信息。 char **backtrace_symbols(void *const *buffer, int size); 把backtrace获取的栈信息转化为...

    入门学习Linux常用必会60个命令实例详解doc/txt

    -d,--directory:所有参数都作为目录处理,而且会创建指定目录的所有主目录。 -D:创建<目的地>前的所有主目录,然后将<来源>复制至 <目的地>;在第一种使用格式中有用。 -g,--group=组:自行设定所属组...

    用于使用 Raspberry Pi 和 HC-SR04传感器 测量距离和深度(公制或英制)的 Python 模块

    您可以通过将 sample_size=x 传递给 raw_distance 来指定不同的样本大小(其中 x 是您想要的读数数量)。如果您需要降低样本量以更快地读取读数,这很有用。请注意,随着样本量的减少,获得错误读数的可能性会增加。...

    deepo:在单个命令行中设置深度学习环境

    使您可以快速设置深度学习研究环境 支持几乎所有 支持(包括CUDA和cuDNN),也可在 适用于Linux( / ),Windows( )和OS X( ) 和他们的Dockerfile生成器 允许您使用类似Lego的模块 自动为您解决依赖关系 目录 ...

    pyufp:ufp 库 python 版本。 各种方便的功能集合

    (IGS) 量化应用于灰度图像更改图像颜色深度从图像边缘提取高频颜色从图像中删除边距通过限制搜索深度递归遍历路径移动文件夹的所有内容以指定格式的字符串获取文件的最后修改时间合并父路径和子路径获取目录中经过...

    图像熵的matlab源码-DOC:深度遮挡的测试版

    图像痛苦的matlab源码DOC:来自单个图像的深度遮挡 王鹏 介绍 我们提出了一种称为 DOC 的深度卷积网络架构,它检测对象边界并估计遮挡关系(即边界的哪一侧是前景,哪一侧是背景)。 具体来说,我们首先通过一个二...

    C/C++笔试题(附答案,华为面试题系列)

    高调度效率和限制资源使用的好处,线程池中的线程达到最大数时,其他线程就会排队 等候。 15函数模板与类模板有什么区别? 答:函数模板的实例化是由编译程序在处理函数调用时自动完成的,而类模板的实例化 必须由...

    (全)传智播客PHP就业班视频完整课程

    非常实用 持之以恒才是王道! ...8-11 3....8-11 4....8-11 5....8-12 1....8-12 2....8-12 3....8-12 4....8-12 5....10-30 4 vi编辑器使用 linux目录讲解 10-4 1 课程回顾 10-4 2 js面向对象多态 10-4 3 js内部对象和系统函数 10...

    史上最全韩顺平传智播客PHP就业班视频,10月份全集

    史上最全韩顺平毕业班视频------这里只有10月份,8,9,11月份在另外一个文件下。 ... ...8-11 3....8-11 4....8-11 5....8-12 1....8-12 2....8-12 3....8-12 4....8-12 5....8-12 6....8-13 2....10-30 4 vi编辑器使用 linux目录讲解 ...

    史上最全传智播客PHP就业班视频课,8月份视频

    史上最全韩顺平毕业班视频------这里只有8月份,9,10,11月份在另外一个文件下。 ... ...8-11 3....8-11 4....8-11 5....8-12 1....8-12 2....8-12 3....8-12 4....8-12 5....8-12 6....8-13 2....10-30 4 vi编辑器使用 linux目录讲解 ...

    韩顺平PHP JS JQUERY 所有视频下载种子 货真价实

    ...8-11 3....8-11 4....8-11 5....8-12 1....8-12 2....8-12 3....8-12 4....8-12 5....8-12 6....8-13 2....8-13 3....8-13 4....10-30 4 vi编辑器使用 linux目录讲解 10-4 1 课程回顾 10-4 2 js面向对象多态 10-4 3 js内部对象和系统函数 ...

    史上最全韩顺平传智播客PHP就业班视频,9月份全集

    史上最全韩顺平毕业班视频------这里只有9月份,8,10,11月份在另外一个文件下。 ... ...8-11 3....8-11 4....8-11 5....8-12 1....8-12 2....8-12 3....8-12 4....8-12 5....8-12 6....8-13 2....10-30 4 vi编辑器使用 linux目录讲解 ...

    SVN操作手册中文版网页格式

    目录 译者序 前言 序言 读者 怎样阅读本书 本书约定 排版习惯 图标 本书组织结构 Subversion 1.1的新特性,svn客户端和linux下命令行。 目录 1. 简介 1.1. 什么是 TortoiseSVN? 1.2. TortoiseSVN 的历史 1.3. ...

    Lerx 网站内容管理系统 v5.5.zip

    用户在模板市场获取模板时,亦是静默下载,完成后网站后台会自动解压到指定位置并自动导入网站系统,用户只需在下载后点击一下设定为默认模板即可。 32.★充份保护模板的制作人的版权。只有在上传的服务器上才可对...

    flash shiti

    loadMovie表示引入一个外部电影到指定层 37.比较运算符分为哪几种? A. 数值比较运算符 B. 字串比较运算符 C. 字母比较运算符 D. 汉字比较运算符 38.在声音同步类型中包括哪几种类型? A. Event B. Start ...

    TortoiseSVN中文手册

    5.1.6. 最大化窗口 ................................................... 38 5.2. 导入数据到版本库 .................................................... 38 5.2.1. 导入 ........................................

Global site tag (gtag.js) - Google Analytics