列目录树的SHELL脚本
时间:2014-09-20 18:45 来源:linux.it.net.cn 作者:it
其实就是递归的扫描目录树
#!/bin/ksh
#The path where this script is located must be added in $PATH
#to ensure it could be called recursively.
#Feel free to use this script,it is just a practice of liuyang.
#2006-5-15,Beijing
#Usage: dtree.sh SEARCH_DIR
SEARCH_DIR=$1
PREFIX=$2
IS_LAST=$3
if [ -z $IS_LAST ]; then
echo "`pwd`/$SEARCH_DIR"
IS_LAST=Y
else
echo "$PREFIX+----$SEARCH_DIR"
fi
DIRS=`ls -l $SEARCH_DIR|egrep "^d"|sed "s/.* \([^ ]*\)/\1/"`
CNT=`echo "$DIRS"|wc -l|sed "s/ *//g"`
if [ $CNT = 0 ]; then
exit
fi
cd $SEARCH_DIR
i=0
for DIR in $DIRS
do
i=`expr $i + 1`
if [ $i = $CNT ]; then
CHILD_LAST=Y
else
CHILD_LAST=N
fi
if [ $IS_LAST = Y ]; then
dtree.sh $DIR "$PREFIX " $CHILD_LAST
else
dtree.sh $DIR "$PREFIX| " $CHILD_LAST
fi
done
(责任编辑:IT)
其实就是递归的扫描目录树
#!/bin/ksh
#The path where this script is located must be added in $PATH #to ensure it could be called recursively. #Feel free to use this script,it is just a practice of liuyang. #2006-5-15,Beijing
#Usage: dtree.sh SEARCH_DIR
SEARCH_DIR=$1
PREFIX=$2 IS_LAST=$3
if [ -z $IS_LAST ]; then
echo "`pwd`/$SEARCH_DIR" IS_LAST=Y else echo "$PREFIX+----$SEARCH_DIR" fi
DIRS=`ls -l $SEARCH_DIR|egrep "^d"|sed "s/.* \([^ ]*\)/\1/"`
CNT=`echo "$DIRS"|wc -l|sed "s/ *//g"` if [ $CNT = 0 ]; then exit fi cd $SEARCH_DIR i=0 for DIR in $DIRS do i=`expr $i + 1` if [ $i = $CNT ]; then CHILD_LAST=Y else CHILD_LAST=N fi
if [ $IS_LAST = Y ]; then
dtree.sh $DIR "$PREFIX " $CHILD_LAST else dtree.sh $DIR "$PREFIX| " $CHILD_LAST fi
done
(责任编辑:IT) |