2016-04-19 4 views
0

私はこの質問が他の場所で聞かれたと確信していますが、私は有用なGoogleの結果を返すようにフレーズしているようには見えません。mkdir:複数のディレクトリを作成する場合は先頭のパス名を省略しますか?

私はすべて同じルートパスを持つ12のディレクトリを作成していますが、これらのディレクトリを作成するにはcdにする必要はありません。現在のコマンドがひどいと繰り返しているようなもの、のようになります。

$ mkdir frontend/app/components/Home frontend/app/components/Profile \ 
    frontend/app/components/Post frontend/app/components/Comment 

理想的な構文は次のとおりの線に沿って何かのようになります。

$ mkdir frontend/app/components/{Home, Profile, Post, Comment} 

、このようなものは、私は避難所」が既にあります見つけた?私はちょうどいくつかのディレクトリを作るためにforループを実行する必要はありません。

+1

「複製」が正しくありません。リンクされる質問は 'mkdir -p'に関するものですが、この質問はそうではありません(@ anubhavaの答えに対するコメントを参照してください)。とにかく、答えがあり、OPは幸せです、それは最も重要です:-)。 –

答えて

2

を。

mkdirは知らないし、する必要はありませんが、bashまたはzshのようなシェルは構文{...,...,...}を理解しています。

ちょうどあなた「の線に沿って」からスペースを削除し、それが動作:

mkdir frontend/app/components/{Home,Profile,Post,Comment} 

それがシェルによって行われるため、シェルが、それは動作しますが、

mkdir frontend/app/components/Home frontend/app/components/Profile frontend/app/components/Post frontend/app/components/Comment 

にそれを拡大しますどんなコマンドでも。

+0

Haではないと言う状況に便利だと分かります。 'bash'のように見えます。これは 'touch 'でも機能します ' '' touch app/components/{Home/index.js、ProfileShow/index.js、PostShow/index.js} '' ' – samcorcos

+2

@samcorcosシェル内の置換のタイプは、**任意の**コマンドと一貫して動作するということです。 – Barmar

+0

@barmar知っておきたいことです。 – samcorcos

1

は、カンマの前後にスペースを削除し、-pオプションを使用します。あなたの願いが付与されている:-)

mkdir -p frontend/app/components/{Home,Profile,Post,Comment} 
+0

'-p'オプションは、' frontend/app/components'がまだ存在しない限り不要です。 – Barmar

+0

正しいですが、 '-p'は既に存在するディレクトリのエラーも抑制するのに便利です。 – anubhava

+0

ディレクトリがまだ存在しないと想定されていない場合に、エラーを抑制したいのはなぜでしょうか。このオプションは、この質問とは全く関係がないようです。 – Barmar

関連する問題