为多个文件夹创建子文件夹和sub_sub文件夹

时间:2019-01-15 14:41:05

标签: bash

我正在尝试在多个目录中创建两个子目录。

例如,我有:

Folder1
Folder2
Folder3

,我想在其中的每一个中创建:

Folder1
   Sub_Folder
      Sub_sub_Folder

Folder2
   Sub_Folder
      Sub_sub_Folder

Folder3
   Sub_Folder
      Sub_sub_Folder

我尝试过:

for dir in *; do mkdir $dir/Sub_Folder/Sub_sub_Folder/; done

没有成功,有人有想法吗?

3 个答案:

答案 0 :(得分:2)

您几乎明白了,请尝试以下操作:

for dir in */; do mkdir -p "$dir"/Sub_Folder/Sub_sub_Folder/; done

添加正斜杠非常重要,这样您只匹配目录而不匹配文件,因此:*/

  

mkdir的手册页

     

-p--parents:如果没有错误,请根据需要创建父目录。

答案 1 :(得分:0)

尝试使用mkdir命令的'-p'选项:

for dir in *; do mkdir -p $dir/Sub_Folder/Sub_sub_Folder/; done

mkdir通常仅创建一个文件夹。使用-p选项,它还会创建所需的父文件夹。

或者,您可以执行双重mkdir:

for dir in *; do mkdir $dir/Sub_Folder; mkdir $dir/Sub_Folder/Sub_sub_Folder; done

答案 2 :(得分:0)

如果您知道要为其创建子目录的目录,并且它们的名称遵循示例中的模式,则可以在Bash中使用大括号扩展:

mkdir -p Folder{1..3}/Sub_Folder/Sub_sub_Folder

这扩展为

mkdir -p \
    Folder1/Sub_Folder/Sub_sub_Folder \
    Folder2/Sub_Folder/Sub_sub_Folder \
    Folder3/Sub_Folder/Sub_sub_Folder