インデックス番号付きのディレクトリを作成するにはどうすればよいですか?

インデックス番号付きのディレクトリを作成するにはどうすればよいですか?

hal-01Linuxでディレクトリを作成したいのですがhal-30、これを実行できる単一のコマンドはありますか?

答え1

次のコマンドを使用できます: mkdir hal-{01..30}(少なくとも、この形式の文字列拡張をサポートするシェル (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

ご覧のとおり、{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

30個必要な場合はmkdir ~/example/folder{1..30}

答え4

次のように使用することもできますseq(1):

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

異なるステップなど、他の操作も実行できます。不可解な理由により、浮動小数点数で計算されるため (!?)、printf(3)それに応じて のような形式を調整する必要があります。これは、ファンキーな展開を行わないプレーン シェルでも機能します。

関連情報