この投稿は インタープリズム的「俺達私達の進捗を上げる25個前後のTips」 Advent Calendar 2015 - Qiitaの5日目 の記事です。
こんにちは、kamoshitaです。
対象読者
背景
- 業務でlinuxを触る機会が多かった
- 新人の年ではなくなった自分はファイルのバックアップをしつこいぐらいに取る様になった
- ファイルのバックアップを取るのに「何でこんなにTABキー連打しなければいけないんだ!」と感じる事が多かった(そもそもTAB補完は超便利ですが)
ブレース展開とは
linuxのシェルであるbashの機能の内の一つ。言葉で説明するより見て頂いた方が分かりやすいと思うので、例を示します。
例
echo hoge{huga,foo}
とコマンドを打つと
と展開してくれます。
また、
echo {hoge,huga}{1,2}
とコマンドを打つと
と展開してくれます。
この様に数学の括弧の展開の様に展開していった項をスペース区切りで展開してくれます。
詳しい説明は以下の記事が分かりやすかったので、こちらを参考にして頂けたらと思います。
これを利用するとlinuxのコマンド操作がちょこっと便利になります。
自分的便利な使い方
- ファイルのバックアップ
例えば、indexSuccess.php
というファイルがあったとします。
このファイルのバックアップを取ろうとしたときに
cp -p indexSuccess.php indexSuccess.php.backup
なんてコマンドを打つと思います。これ、ブレース展開を使えばこんなに綺麗に書けます。
無駄がないですね!
- catで複数ファイルを指定
フレームワークには規則に則ったファイル名がつくことが多いので、フレームワークを使っている人はもしかしたら重宝するかと思います。
cat /tmp/hoge/{index,view,list,error}Success.php
と入力すれば、
cat /tmp/hoge/indexSuccess.php /tmp/hoge/viewSuccess.php /tmp/hoge/listSuccess.php /tmp/hoge/errorSuccess.php
を入力したことになり、
indexSuccess.php
, viewSuccess.php
,listSuccess.php
,errorSuccess.php
というファイルを結合して表示してくれます。
これをパイプでgrepに渡して検索も便利!
- 階層的なディレクトリを一遍に作成する
似た様な階層構造のディレクトリを一遍に作ることができます。
結論
- 機会も多いのでファイルのバックアップ取る時に一番威力を発揮します。
- バックアップファイル名を間違える可能性を減らせますし、無駄にTABを叩かなくて済みます。
- 是非、バックアップを取る際には使ってみてください。
余談
余談ですが、自分が使っているSSHクライアントのRLogin、魚飼えます。動きます。
インタープリズム的「俺達私達の進捗を上げる25個前後のTips」 Advent Calendar 2015 - Qiitaの6日目の記事