我正在尝试创建数百个文件夹,每个文件夹中包含另外100个嵌套文件夹。
我已经制作了这段代码,但它不起作用:
for i in {0..100}
do
mkdir "folder{$i}"
topfolder = "folder{$i}"
cd $topfolder
for a in {0..100}
do
mkdir "folder{$a}"
done
done
你可以给我一个建议吗?
答案 0 :(得分:5)
bash中的变量赋值中没有空格。此外,使用mkdir -p
可以简化您的脚本,如果子目录不存在,它们会同时创建父目录:
for i in {0..100}; do
for a in {0..100}; do
mkdir -p "folder${i}/folder${a}"
done
done
另一个问题是你的花括号错误地放在你的参数周围(我假设你想要名为folder0
的目录,而不是folder{0}
)。
正如gniourf_gniourf在评论中所建议的那样(感谢),实际上可以完全删除循环:
mkdir -p folder{0..100}/folder{0..100}
答案 1 :(得分:2)
要以递归方式创建目录,您需要输入目录,然后创建子目录。
这是您需要做出的改变。
for i in {0..100}
do
mkdir "folder{$i}"
cd "folder{$i}"
for a in {0..100}
do
mkdir "folder{$a}"
done
cd ..
done