如何使用Bash脚本创建100个子目录?


14

我正在尝试使用Bash脚本在某些目录中创建100个不同的子目录。

我从一个基本for循环(即for f in $FILES;do mkdir f done)开始,但是它不起作用。

要明确说明我想做什么:我尝试在当前目录中获得100个不同的子目录(在此我使用home='pwd')。例如,在目录中/home/paul/main_directory/

在这里,我想创建100个目录,索引从1到100,如下所示:

subdirectory_1
subdirectory_2
subdirectory_3
subdirectory_4
.
.
.
subdirectory_100

Answers:


19

要使用建议的for循环来回答您的问题-steeldriver提到的大括号表达式也可以工作:

for i in {1..100}; do mkdir subdirectory_$i; done

要回答您的更新问题:

两者-钢铁司机的答案和我的答案都是单线的。

如果您想在Bash脚本中使用它,您可能会这样写:

#!/bin/bash
for i in {1..100}
do
    mkdir subdirectory_$i
done

抱歉,我不想编辑您的答案,我只想评论一下...哎呀...
Pavol

非常感谢您的快速回答,现在我知道了。谢谢你很多次,这使我很安全:)
Pavol Namer 2015年

1
如果您没有完整的BASH而是/ bin / sh,则可以使用以下seq替代方法: for i in $(seq 1 100); do mkdir dir_$i; done
Daniel Llewellyn 2015年

尝试执行相同的3次创建目录'{1..3}'。任何线索可能出了什么问题?
soufrk

40

最简单的方法可能是使用大括号扩展

mkdir subdirectory_{1..100}

8

为Steeldriver给出的真正令人印象深刻的答案添加一些内容:

您可以创建目录,并以零填充以“适当”排序。

mkdir subdirectory_{001..100}

(如果您喜欢此答案,请赞成Steeldriver的答案。我目前无法发表评论,或者会这样做。)


创建一个名为“ subdirectory_ {001..100}”的子目录。关于可能出问题的任何线索。
soufrk

不知道。在这里对我来说效果很好。您正在使用bash吗?
MDeBusk
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.