如何创建带有索引号的目录?

如何创建带有索引号的目录?

我想在 Linux 上创建目录hal-01hal-30有没有一个命令可以做到这一点?

答案1

您可以使用以下命令:(mkdir hal-{01..30}至少如果您使用的 shell 支持这种形式的字符串扩展(bash 支持))。

解释一下它的作用:

$ echo {01..30}
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

如您所见,got{01..30}已扩展为多个参数。如果花括号也出现在字符串中,则此方法有效:

$ echo hal-{01..30}
hal-01 hal-02 hal-03 hal-04 hal-05 hal-06 hal-07 hal-08 hal-09 hal-10 hal-11 hal-12 hal-13 hal-14 hal-15 hal-16 hal-17 hal-18 hal-19 hal-20 hal-21 hal-22 hal-23 hal-24 hal-25 hal-26 hal-27 hal-28 hal-29 hal-30

现在 mkdir 接受多个参数,并为每个参数创建一个目录。因此,如果您使用mkdir而不是 ,您将获得所需的结果echo

答案2

使用括号扩展,例如这样: mkdir hal-{01..30}

答案3

mkdir ~/example/folder{1..30} 如果你想要 30

答案4

您也可以使用seq(1)它,例如:

mkdir $(seq --format="~/example/folder/HAL-%02.0f" 1 30)

可以做其他事情,比如不同的步骤等等。由于某些难以理解的原因,它使用浮点数计算(!?),printf(3)类似格式必须进行相应调整。这甚至可以在不进行奇怪扩展的普通 shell 上工作。

相关内容