繁体   English   中英

枚举bash目录中的每个子目录

[英]enumerate each sub directory in a directory in bash

for subdir in $( find $dir -type d ); do

    echo "subdir is $subdir"                                                                                                                            
done

问题是,如果子目录名称包含空格,它们将分隔开,我该如何解决?

您可以使用process substitution

while IFS= read -d '' -r subdir; do
    echo "subdir is $subdir"                                                                                                                            
done < <(find "$dir" -type d -print0)
for subdir in $somedir/*/ do
    echo "subdir is $subdir"                              
done

如果您仍然遇到空格问题,那么您就别无所求了。

oldifs=$IFS
IFS=$'\n'
for subdir in $( find $dir -type d ); do
    echo "subdir is $subdir"
done
IFS=$oldifs

例:

$ bash dirnm.sh a
subdir is a
subdir is a/dir 1 
subdir is a/dir 2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM