ブレース拡張とは何か理解していますが、最善の方法がわかりません使用してください。
いつ使用しますか?
ヒントがあれば、便利で注目に値する例をいくつか教えてください。
回答
中括弧の展開は、パス名が長い場合に非常に便利です。ファイルをバックアップする簡単な方法として使用します:
cp /a/really/long/path/to/some/file.txt{,.bak}
は/a/really/long/path/to/some/file.txt
を
シーケンスでも使用できます。ウェブからたくさんのページをダウンロードする:
wget http://domain.com/book/page{1..5}.html
または
for i in {1..100} do #do something 100 times done
コメント
より効率的です。
回答
中括弧の拡張大規模なディレクトリ構造を作成する場合に非常に便利です:
mkdir -p dir1/{subdir1,subdir2}/{subsubdir1,subsubdir2}
これにより
find dir1 -type d dir1 dir1/subdir1 dir1/subdir1/subsubdir1 dir1/subdir1/subsubdir2 dir1/subdir2 dir1/subdir2/subsubdir1 dir1/subdir2/subsubdir2
さらに一歩進んで、ブレース拡張をブレース拡張に入れることもできます:
mkdir -p dir1/{subdir{1,2}}/{subsubdir{1,2}}
これにより、上記の例と同じディレクトリ構造が得られます。
コメント
- ネストは便利ですが、ネストの例(
mkdir -p dir1/{subdir{1,2}}/{subsubdir{1,2}}
)は'実際にはどのような目的にも役立ちません。mkdir -p dir1/subdir{1,2}/subsubdir{1,2}
。 - @iconoclast、
subdir1
を解釈すると、目的を果たします。非リテラルの意味でのsubdir2
。subdir1
をcat
に置き換え、subdir2
をdog
。 - @ephsmith:" subdir1 "を
cat "および" subdir2 " for " dog "の場合、subdir {1,2}を使用し、置き換えることができる文字列がないため、ネストの例は失敗します" subdir "を使用すると、subdir {1,2}は{cat、dog}を返します。
program -f file1 -f file2 -f file3
を実行する代わりに、program "-f file"{1..3}
program
が6ではなく"-f file1" "-f file2" "-f file3"
の3つの単語を取得するため、失敗します:"-f" "file1" "-f" "file2" "-f" "file3"
。for
ループで使用するために拡張を使用することは、次のように記述できるため、少し意味がありません。 div id = “e352bf8646″>