mv filename.{old,new} とは?
Linuxで使えるクレージーな小技コマンドいろいろ | IDEA*IDEA
mvの機能だと勘違いする人がいるかも知れないので補足。
mv filename.{old,new}
{}にカンマ区切りの文字列を入れとくと、シェルが{}前後の文字列をくっつけながら展開してくれるのです。ファイル名とか関係なく。
$ echo {a,b,c} a b c $ echo ^{a,b,c}$ ^a$ ^b$ ^c$
スペースを入れると展開されないので
$ echo ^{a, b ,c}$ ^{a, b ,c}$
その場合はエスケープすると良い。
$ echo ^{a,\ b\ ,c}$ ^a$ ^ b $ ^c$
mv以外にも色々応用できますね!
例えば、
$ echo /usr/{local/,}bin/
とすると、
$ echo /usr/{local/,}bin/ /usr/local/bin/ /usr/bin/
と展開されるので、
$ echo /usr/{local/,}bin/perl*
のようにすれば、/usr/binと/usr/local/binに入ってる"perl"で始まるファイルの一覧を取得できます。
$ echo /usr/{local/,}bin/perl* /usr/local/bin/perl /usr/local/bin/perl5.12.2 /usr/local/bin/perlbug /usr/local/bin/perldoc /usr/local/bin/perlivp /usr/local/bin/perlthanks /usr/bin/perl /usr/bin/perl5.8.8 /usr/bin/perlbug /usr/bin/perlcc /usr/bin/perlcritic /usr/bin/perldoc /usr/bin/perlivp /usr/bin/perltidy
便利だね!