中かっこ拡張を使用してディレクトリを作成する

中かっこ拡張を使用してディレクトリを作成する

mkdir Public/1 2 3 ----- この行はパブリックフォルダにフォルダ1を作成し、my pwdに2と3というフォルダを作成します。

mkdir Public/{1..3} ---- この行は、期待どおりに Public にフォルダー 1,2,3 のみを作成します。

何が起こっているのかを説明できる人はいますか?

答え1

最初のコマンドは次のとおりです。

mkdir Public/1 2 3

BASHはこれをパブリックディレクトリにmkdir Public/1内部という名前のディレクトリを作成すると解釈します。1他のものは前に追加されたディレクトリがないため、BASHはそれを現在の作業ディレクトリに作成すると解釈します23

2番目のコマンドは次のとおりです。

mkdir Public/{1..3}

ご覧のように、BASHは最初のコマンドと同様に現在の作業ディレクトリを使用するのではなく、中Public/{1..3}括弧拡張を使用してディレクトリを作成し、ディレクトリ内で使用するものと1解釈します23Public

rmdirで、または代わりに同じコンテンツを使用してもtouch同じことが起こりますmkdir

答え2

、とのmkdir Public/1 2 33つのパラメータがあります。このコマンドは次のとおりです。Public/123

mkdir Public/1
mkdir 2
mkdir 3

mkdir Public/{1..3}実行する前にシェルから{1..3}展開してくださいmkdir。しかし、殻は膨張しません。{1..3} ホロ{1..3}これはより大きな「単語」。以下Public/{1..3}Public/1 Public/2 Public/3見ることができますecho

echo Public/{1..3}

シェルで実行される実際のコマンドはmkdir Public/1 Public/2 Public/3次のとおりです。

mkdir Public/1
mkdir Public/2
mkdir Public/3

関連情報