2013-05-28 60 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