2013-05-28 123 views
2

我有一个包含大量子文件夹(即1190A,1993A等)的工作目录。在现有子目录中递归创建目录树

'/working/1190A' 
'/working/1993A' 

我想在每个子文件夹内递归地创建一个特定的目录树。例如:

'/working/1190A/analysis/1' 
'/working/1993A/analysis/1' 
etc 

谢谢。

回答

4

要强制系统创建一个目录树,而不必创建它的每个级别,请将-p添加到mkdir命令。

因此,这可能是工作:

for dir in list_of_folders 
do 
    mkdir -p $dir/your/directory/tree 
    [ $? ] && echo "error on $dir" # if the dir could not be created, print error (thanks @hetepeperfan - see comments) 
done 

注意,list_of_folders可以给像/working/1190A /working/1993A,而且还带有find命令生成。这只是第一个版本,你最好适应你的具体要求。

+2

这可能是明智的检查的mkdir的退出状态,否则可能OP在以后的过程中出现错误。 – hetepeperfan

+0

谢谢,@ hetepeperfan,我在这种情况下添加了一个'echo'。 – fedorqui

+0

可能会更好,通过'find/working/-maxdepth 1 -type d'获取文件夹列表 – Rohan

0
yourDirList=/working/* 
for f in $yourDirList 
do 
    if [ -d $f ] 
     mkdir -p $f/analysis/1 
    fi 
done 
2

这是一个班轮为

cd /working 
find . -maxdepth 1 -type d -exec mkdir -p '{}'/analysis/1 \; 
+0

非常感谢!作品一种享受。 – ap123