我想递归地遍历当前目录内的所有子目录。

for i in *


这只会遍历当前目录中的所有文件。如何创建它,以便如果它正在查看的文件是目录,请进入该目录并递归查看该目录,依此类推。

编辑:对不起应该更具体。我不能使用ls -R,因为我想以某种格式类型的树状结构显示它。我听说有可以执行此操作的命令,但是我必须使用循环。也不能使用“查找” ...

最佳答案

这是一个执行所需功能的功能。在当前目录中使用recp 0进行调用。

function recp
{
    lvl=$(($1 + 1))
    for f in *
    do
        j=0
        while [[ $j -lt $lvl ]]
        do
            echo -n "    "
            j=$(($j+1))
        done
        echo $f
        [[ -d $f ]] && ( cd $f && recp $lvl )
    done
}

10-06 04:55
查看更多