在嵌套文件夹中创建文件夹不起作用

时间:2014-11-13 09:34:25

标签: linux bash

我正在尝试创建数百个文件夹,每个文件夹中包含另外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
你可以给我一个建议吗?

2 个答案:

答案 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