元ネタ
シンプルなやりかた
何も考えないでやると
$ find . -type d -name .svn -exec rm -rf {} \;
この方法だと、以下のようにエラーが発生する
find: ./hoge/.svn: No such file or directory
find: ./fuga/.svn: No such file or directory
エラーを取り除く
-prune オプションを追加する。
$ find . -type d -name .svn -prune -exec rm -rf {} \;
効率よく削除する
rm は引数に複数のディレクトリを指定できるが、上記コマンドだと一つづつ指定される。;
を +
に変更して、マッチしたディレクトリ全体が渡るようにする。
$ find . -type d -name .svn -prune -exec rm -rf {} +