so true

          心懷未來,開創未來!
          隨筆 - 160, 文章 - 0, 評論 - 40, 引用 - 0
          數據加載中……

          列出某目錄下的所有目錄并且可以自由控制深度的腳本

          #!/bin/bash

          [ $# -gt 2 ] && {
              echo "Usage: ${0##*/} <dir=.> <deep=1>"
              exit 1
          }

          TOP=0
          QUEUELIST[${#QUEUELIST[@]}]=`cd ${1:-.};pwd`
          DEEPMAX=${2:-1}
          DEEP=0
          #The number of directories in the upper directory(DEEP-1)
          X=1
          #The number of directories in the next directory(DEEP+1)
          Y=0
          #The number of directories scanned in the current directory(DEEP)
          Z=0
          while [ $TOP -ne ${#QUEUELIST[@]} ]
          do
              curdir=${QUEUELIST[$TOP]}
              cd $curdir
              ((TOP++))
             
              for list in `ls`
              do
                  if [ -d $list ]
                  then
                      echo $curdir/$list
                      QUEUELIST[${#QUEUELIST[@]}]=$curdir/$list
                      ((Y++))
                  fi
              done
              ((Z++))
              if [ $Z -eq $X ];then
                  ((DEEP++))
                  if [ $DEEP -eq $DEEPMAX ];then
                      exit 0
                  fi
                  X=$Y
                  Y=0
                  Z=0
              fi
          done

          說明: 其實用find就可以,只要指定-maxdepth即可,這里只為練練手

          posted on 2009-07-18 16:44 so true 閱讀(328) 評論(0)  編輯  收藏 所屬分類: Linux

          主站蜘蛛池模板: 裕民县| 克什克腾旗| 海晏县| 章丘市| 拜泉县| 博乐市| 沂水县| 高雄县| 富顺县| 乐山市| 沙田区| 和田县| 东港市| 启东市| 正蓝旗| 龙井市| 右玉县| 高碑店市| 台州市| 仪征市| 镇沅| 镇宁| 万州区| 武宣县| 阳城县| 白朗县| 星子县| 望江县| 周至县| 夏津县| 南平市| 景洪市| 土默特右旗| 锡林浩特市| 平果县| 邳州市| 诸城市| 来宾市| 蒙山县| 青铜峡市| 彩票|