zshでコマンド引数の**は実行前に展開することができる
2007/04/18
$ find . -name ‘.svn’ -exec rm -rf {} \; 2>/dev/null
http://d.hatena.ne.jp/smeghead/20070410/zsh
zshの<M-q>の機能の話の例の中で、長いコマンドという意味で上のようなコマンドを書きました。
最近妙に流行りのfindですが、bash系ならfindもxargsも使わなくていい。
#bashでもできるのは最近知った。(id:smeghead:20070410:zsh)
bash$ rm -rf **/.svn
これだけで同じことができる
更にzshの場合は、ワイルトカードが、どう展開されるかの確認もできます。
zsh$ rm -rf **/.svn■
■にカーソルがある状態で、tabキーを押すと、コマンド実行前に、ワイルトカードが展開される。
zsh$ rm -rf .svn/ src/.svn/ src/filters/.svn/ src/main/.svn/ src/main/java/.svn/ src/main/resources/.svn/ src/main/webapp/.svn/ src/main/webapp/WEB-INF/.svn/ src/main/webapp/WEB-INF/pages/.svn/ src/main/webapp/WEB-INF/spring/.svn/ src/main/webapp/css/.svn/ src/main/webapp/img/.svn/ src/main/webapp/js/.svn/ src/test/.svn/ src/test/java/.svn/ src/test/resources/.svn/■
余分なファイルがあったら、引数から消してから実行することもできる。勿論、候補が数百以上あるような場合は大変なことになるので(ry。
この機能は、どのオプションに影響を受けているとかの詳細は知りません。ここ数年.zsh*は弄ってないし、異常に設定を理解するのが難しいので。