interprism's blog

インタープリズム株式会社の開発者ブログです。

実は便利なブレース展開

この投稿は インタープリズム的「俺達私達の進捗を上げる25個前後のTips」 Advent Calendar 2015 - Qiitaの5日目 の記事です。

こんにちは、kamoshitaです。

対象読者

  • 業務・趣味でbashを触る機会が多い方
  • linuxでファイルのバックアップを取る機会が多い方
  • 後輩に「え!?それどうやったんですか?」と言われたい方

背景

  • 業務でlinuxを触る機会が多かった
  • 新人の年ではなくなった自分はファイルのバックアップをしつこいぐらいに取る様になった
  • ファイルのバックアップを取るのに「何でこんなにTABキー連打しなければいけないんだ!」と感じる事が多かった(そもそもTAB補完は超便利ですが)

ブレース展開とは

linuxのシェルであるbashの機能の内の一つ。言葉で説明するより見て頂いた方が分かりやすいと思うので、例を示します。

echo hoge{huga,foo}

とコマンドを打つと

f:id:interprism:20151128012447p:plain

と展開してくれます。

また、

echo {hoge,huga}{1,2}

とコマンドを打つと

f:id:interprism:20151128012444p:plain

と展開してくれます。

この様に数学の括弧の展開の様に展開していった項をスペース区切りで展開してくれます。

詳しい説明は以下の記事が分かりやすかったので、こちらを参考にして頂けたらと思います。

bashのブレース展開についてまとめ

これを利用するとlinuxのコマンド操作がちょこっと便利になります。

自分的便利な使い方

  • ファイルのバックアップ

 例えば、indexSuccess.phpというファイルがあったとします。  このファイルのバックアップを取ろうとしたときに

cp -p indexSuccess.php indexSuccess.php.backup

なんてコマンドを打つと思います。これ、ブレース展開を使えばこんなに綺麗に書けます。 f:id:interprism:20151128012439p:plain

無駄がないですね!

  • 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に渡して検索も便利!

  • 階層的なディレクトリを一遍に作成する

似た様な階層構造のディレクトリを一遍に作ることができます。 f:id:interprism:20151128012457p:plain

結論

  • 機会も多いのでファイルのバックアップ取る時に一番威力を発揮します。
  • バックアップファイル名を間違える可能性を減らせますし、無駄にTABを叩かなくて済みます。
  • 是非、バックアップを取る際には使ってみてください。

余談

余談ですが、自分が使っているSSHクライアントのRLogin、魚飼えます。動きます。 f:id:interprism:20151128013138p:plain

インタープリズム的「俺達私達の進捗を上げる25個前後のTips」 Advent Calendar 2015 - Qiita6日目の記事

インタープリズムのページ

PAGE TOP