Unix ボックスでこのコマンドを実行します:
find . name CVS -exec rm -fr {} \;
CVS
現在のディレクトリから任意のディレクトリ内で呼び出されるすべてのファイルを削除したいのですが、すべてが削除されました。
幸いなことに、回復するために必要なことは、CVS から再度チェックアウトすることだけでした。/
開始ディレクトリとして指定したと想像してみてください。
理由は、name
の代わりにを使用したためだと思います-name
。 次のように再実行します。
find . -name CVS -exec rm -fr {} \;
そして、それはうまく動作するようです。name
ではなく を使用すると、正確に何が起こるのでしょうか-name
?
答え1
の前のダッシュが抜けている-name
ので、パス.
、およびname
という名前CVS
で、ドットは現在のフォルダーを参照するため、すべてが削除されます。
find ユーティリティは、リストされている各パスのディレクトリ ツリーを再帰的に下降します。
echo
実行するコマンドの前にを使用すると簡単にテストできます。
検索 . name CVS -exec echo rm -fr {} \;