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

Pav*_*mer 14 command-line

我正在尝试使用 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
Run Code Online (Sandbox Code Playgroud)

ste*_*ver 41

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

mkdir subdirectory_{1..100}
Run Code Online (Sandbox Code Playgroud)


小智 19

要使用您建议的for循环回答您的问题- steeldriver 提到的括号表达式也适用:

for i in {1..100}; do mkdir subdirectory_$i; done
Run Code Online (Sandbox Code Playgroud)

要回答您更新的问题:

两者 - steeldriver 的回答和我的回答都是单行的。

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

#!/bin/bash
for i in {1..100}
do
    mkdir subdirectory_$i
done
Run Code Online (Sandbox Code Playgroud)

  • 对于没有完整 BASH 而只有 /bin/sh 的情况,您可以使用 `seq` 代替:`for i in $(seq 1 100); 做 mkdir dir_$i; 完成` (2认同)

MDe*_*usk 8

在 steeldriver 给出的真正令人印象深刻的答案中添加一些东西:

您可以通过填充零来创建“正确”排序的目录。

mkdir subdirectory_{001..100}
Run Code Online (Sandbox Code Playgroud)

(如果您喜欢这个答案,请点赞 steeldriver 的答案。我还不能发表评论,或者会这样做。)