Wed, April 2, 2008
Bash ... brace expansion ブレース展開
bashには、複数のファイルを指定する便利な機能がある。
たとえば、
カレントディレクトリに、拡張子(*.jar)ファイルがたくさんある。
このうちのいくつかの jar だけを別のディレクトリにコピーしたい場合。
$ cp {foo,bar}.jar ~/
※foo.jar と bar.jar をホームディレクトリにコピー。
この機能はカレントディレクトリ以外でも使えるので、 とくにMakefile内から使う場合にわたしは重宝しています。
以下のような感じ... copyjars: cp /somewhere/lib/{foo,bar}.jar lib/
その他補足
ファイル名の指定は * も使えます。
たとえば、images ディレクトリに
- foo1.gif,foo2.gif,foo_3.gif
- bar1.gif,bar2.gif
- hoge1.gif,hoge2.gif
があった状態で hogegif* は除外してコピーしたい場合。
$ cp images/{foo,bar}*.gif ~/