如何用shell遍历一个目录下的所有子目录

 我来答
albumin
推荐于2016-04-10 · TA获得超过1.2万个赞
知道大有可为答主
回答量:4889
采纳率:87%
帮助的人:2399万
展开全部
SAVEIFS="$IFS"
IFS="
"
hypen="------------------------------------------------------------------------------------"
printhypen()
(
            tab=$(( $1 * 4 ))
            if [ $tab -gt 0 ]
            then
            printf "%-.${tab}s  " "$hypen" 
            fi
)
traverdir()
(
    pushd "$1" > /dev/null 2>&1
    tab="$2"
    for file in `ls -1`
    do
        if test -d "$file"
        then
            printhypen $tab
            echo "<dir> $file"
            traverdir "$file" "$((tab + 1  ))"
        else
            printhypen $tab
            echo "$file"
        fi
    done
    popd > /dev/null 2>&1
)
read -p "请输入要遍历的目录:" dir
traverdir "$dir" 0
IFS="$SAVEIFS"
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式