我想递归地遍历当前目录内的所有子目录。
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
}