循环遍历文件夹中的所有子目录?

循环遍历文件夹中的所有子目录?

我有要求,需要打印每个文件夹的相对路径。

文件夹结构是

在此输入图像描述

有什么办法通过使用单一为了循环我可以打印绝对路径。

输出 :-

image_script
image_script/artifactory
image_script/artifactory/charts
image_script/artifactory/charts/postgressql
image_script/artifactory/charts/postgressql/templates
image_script/artifactory/templates

提前致谢 !!!!

答案1

你可以试试

find `pwd` -type d

或者将 pwd 替换为文件夹的绝对路径

答案2

要从最顶层image_script目录获取所有目录的路径名:

find image_script -type d

这将包括image_script目录本身。

要得到绝对路径名,即以 开头的路径名,指定命令行上目录/的完整路径。image_scriptfind

用于find images_script -depth -type d以深度优先顺序获取路径名。

bash

shopt -s globstar
printf '%s\n' image_script/**/

shellglobstar选项允许使用 来**匹配/路径名。这将输出带有尾随的所有目录路径名/。为了避免这种情况:

shopt -s globstar
for pathname in image_script/**/; do
    printf '%s\n' "${pathname%/}"
done

答案3

您可以使用为了它。

$ tree -d -f -i /path/to/root_folder

-d仅打印目录。

-f预先添加完整路径。

-i用于不打印缩进线。

鳍游泳者

答案4

使用for循环可能不是最好的选择,最好使用find

cd /PATH/TO/image_script/..
find image_script -type d

如果您需要绝对路径,可以使用

find /PATH/TO/image_script -type d

相关内容