我正在尝试在多个目录中创建两个子目录。
例如,我有:
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
没有成功,有人有想法吗?
答案 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