findコマンドを利用して楽をする。

バージョン管理ツールにCVSを利用しています。
CVSを使っているとディレクトリ内に"CVS"と言うディレクトリが作成されこの中にメタデータが格納されるようです。
作成したアプリケーションを配布したり、デプロイする際にこのCVSメタデータを削除したクリーンなソース一式を用意したいと思うのですが、
CVSディレクトリをちまちま削除しているとめんどくさいです。
一発で削除できないかなーと調べてみると

findコマンド

が使えそうです。
検索にしか使っていなかったのですが、以下のようにすると検索条件にマッチしたファイルやディレクトリを引数にコマンドを実行できるみたいです。

$find -type d -name "CVS" -exec rm -rf {} \;

上記を訳すと
CVSという名前にマッチした、タイプがディレクトリを問答無用で削除するように。
と言うことになります。
{}にマッチしたディレクトリが入るようです。

これを応用して

vimでプログラミングをしているとファイル名の末尾に"~"がついたバックアップファイルが大量にできます。
これを一括削除することも以下のように簡単にできます。

find -type f -name "*~" -exec rm -f {} \;

注意

今回はrmを使ってオプションにfを指定しましたが、こうすると問答無用で削除されてしまうので
一度

find -type d -name "CVS"

などと-execなしで実行して確認してから削除するようにしましょう。