何百もの子ディレクトリを持つ親ディレクトリを作成し、生成された子ディレクトリに何百もの26個の空のファイルを生成するtouchコマンドが続くチュートリアルで、次のコマンドを見つけました。
mkdir -p playground/dir-{00{1..9},0{10..99},100}
touch playground/dir-{00{1..9},0{10..99},100}/file-{A..Z}
私の質問は、この構文が正確にどのように機能するかです。角かっこ拡張とは何をし、00
その0
意味は何ですか100
?これが最後の値であることを知っていますが、合計がどのように機能するかは100
よくわかりません。 touchコマンドにも同じ問題があります。00
,0
理解するのを手伝ってください。ありがとうございます。
ベストアンサー1
さて、見てみましょう:
1) コマンドmkdir -p playground/dir-{00{1..9},0{10..99},100}
playground/
で、それぞれ次の形式で100個のディレクトリを作成できます。dir-xxx
ここでxxx
は数字です。さて{00{1..9},0{10..99},100}
、あなたは3つのことについて話しています。
- 1から9までの
00x
ディレクトリを作成します。x
00{1..9}
- 10から99までのディレクトリを作成します
0xx
。xx
0{10..99}
- 部分的にディレクトリ100を作成
2) 1)のすべてのディレクトリがある場合は、touch
コマンドを実行します。
AZ範囲に文字が1つある次のfile-x
形式でファイルをタッチします。x
この{00{1..9},0{10..99},100}
部分では、1)で作成したディレクトリのファイルをタッチしたいとおっしゃいました。ご覧のとおり、中括弧内の部分はコマンドの部分と同じですmkdir
。
お役に立てば幸いです。支柱の拡張についてもっと知りたい場合は、以下をお読みください。https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html