ターミナル(shell)の小技(ファイル名置換)

ファイル名を簡単に入力する

一生懸命ファイル名の補完を使って入力しても良いのですが、キータイプ数が
増えると入力ミスも増えるというもの。
そこで使うのが、ファイルグロブと呼ばれるファイル名の置換メカニズムです。

*を使うパターン

よくあるのは、* を使って、

% rm *.orig

で、古いファイルを削除するとかですね。
この * って 否定演算子として ^ も組み合わせて使えるって知ってました?

例えば、

% ls
apple banana 

% echo a*
apple
 #=> aから始まるファイル名にマッチ

% echo ^a*
banana
 #=> aから始まらないファイル名にマッチ

などという使い方ができます。

{ と }を使うパターン

もっと便利なのが、{ と } です。

一番多い出番は、手でバックアップするためにファイル名の最後に .orig とかつけたりするパターン。

% cp test.txt{,.orig}
#=> これは、cp test.txt test.txt.orig に展開される


{ } には、いくつでもカンマ区切りで並べれるので、

% mv test{1,2,3}.dat /path/to/data
#=> これは、mv test1.dat test2.dat test3.dat /path/to/data に展開される

こんな使い方もできます。

工夫次第で、自分の普段の入力をよりサポートしてくれると思います。

Have fun !