[shell]用shell写的tree 命令

#记录当前所在的路径
myPath="$PWD"
#将会填充blank
sblank="    "
#blank将会填充在“└────”的前面
sblankblank="└────"

#tree函数,该函数实现tree的功能
tree()
{
    #for循环,搜索该目录下的所有文件和文件夹
    for file in *;
    do
        #if判断,判断是不是文件,如果是文件的话,将该文件名写入filelist.txt
        if [ -f "$file" ]; then
            echo "${sblankblank}$file" >> "${myPath}/filelist.txt"
        fi
        
        #if判断,判断是不是文件夹,如果是文件夹的话,将该文件夹的名称写入filelist.txt
        if [ -d "$file" ]; then
            #1、将该文件夹的名称写入filelist.txt
            echo "${sblankblank}$file" >> "${myPath}/filelist.txt"
            #2、在“└────”的前面填充“    ”
            sblankblank=${sblank}${sblankblank}
            #3、进入该文件夹
            cd "$file"
            #4、执行tree函数(这是递归)
            tree
            #5、从该文件夹里出来
            cd ..
            #6、从文件夹里出来之后,将在“└────”的前面填充的“    ”删除
            sblankblank=${sblankblank#${sblank}}
        fi
    done
}

tree


代码参考:

http://my.youkuaiyun.com/my/code/detail/63054





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值