.svn ディレクトリを検索するには、次のコマンドを実行します。
find . -name ".svn"
これは私に次のような結果を与えます:
./toto/.svn
./toto/titi/.svn
./toto/tata/.svn
rm -fr
ディレクトリとその内容を削除するには、これらの行をどのように処理する必要がありますか?
ベストアンサー1
Findは、-exec
見つかった各一致のオプションを含む引数を実行できます。スペース/改行やその他の文字を含むパスを正しく処理できるため、これは推奨されるメカニズムです。ディレクトリ自体を削除するには、まずディレクトリの内容を削除する必要があるため、これを行うには-r
コマンドを使用します。rm
たとえば、次のように発行できます。
find . -name ".svn" -exec rm -r "{}" \;
findにのみfindと言うこともできます。目次確認を追加して-type d
名前を.svnとして指定します。
find . -name ".svn" -type d -exec rm -r "{}" \;
警告するrm -r
注意して使用すると、フォルダとその内容の両方が削除されます。
空のディレクトリと空のディレクトリのみを含むディレクトリのみを削除するには、-delete
findと次のいずれかを使用して直接削除できます-empty
。
find . -name ".svn" -type d -empty -delete