共享我写的一个脚本。来实现列出当前目录下的所有子目录。
主要思想是将当前目录入队。每次处理都从队列取队头元素, 如果队列不空,打印出当前目录并将该目录下的所有子目录入队。这样处理直到队列空为止。
#!/bin/bash
# list all subdirs in specified dir.
# author: gavin xu
#
#queue length
QLEN=0 indx=0
enque() { tindx=`expr $QLEN + $indx` QUEUELIST[$tindx]=$1 QLEN=`expr $QLEN + 1` }
deque() { TEMPVAR=${QUEUELIST[$indx]} indx=`expr $indx + 1` QLEN=`expr $QLEN - 1` }
curdir=`pwd`
enque $curdir
while [ $QLEN -gt 0 ] do
deque
cd $TEMPVAR
lslist=`ls`
for list in $lslist do if [ -d $list ] then tlist=$TEMPVAR/$list echo $tlist enque $tlist fi done
done
|
阅读(1081) | 评论(0) | 转发(0) |