[英]Recursively iterate through directory - Linux
我想递归遍历当前目录中的所有子目录。
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
}
我不太擅长 bash 脚本编写,但下面的示例遍历所有目录。 你可以用你喜欢的任何东西替换 echo 命令。 我相信这个例子的风格可以改进。
您还考虑过命令“tree”吗?
祝你好运。
#!/bin/bash
function recursiveList
{
if [ -d $1 ]
then
cd $1
for x in *
do
recursiveList $x
done
cd ..
else
echo $1
fi
}
for i in *
do
recursiveList $i
done
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.