読者です 読者をやめる 読者になる 読者になる

pockestrap

Web Programmer's memo

zsh で .git/ 以外の全てのファイルにマッチ

$ grep 'nya' **/*(.)

とか便利ですよね。カレントディレクトリ以下の通常ファイルを再帰的に見ていって、全部grepするの。
よく使います。
ですが、gitで管理しているディレクトリでこれをやると、コミットメッセージとか引っかかって邪魔です。ノイズだらけです。死んでくれーーー


ということで、こんな感じのパターンマッチがよい感じです。
使うにはextendglobのセットが必要です。

$ setopt extendedglob
$ grep 'nya' **/*~.git/*~*/.git/*(.)

はい…つらいですね。こんなの一々打ってられない。
ということで、グローバルエイリアスにしてしまいましょう。

# file: ~/.zshrc
setopt extendedglob
alias ALL='**/*~.git/*~*/.git/*(.)'

ALLのところはお好みで。

$ grep 'nya' ALL

としてやれば、.git/以下を除いた全てのファイルにマッチします。やったね。
ちなみに.zshrcはgithubで公開しています。 https://github.com/pocke/dotfile

grepをシェル関数化してやってもよいかもなぁ。