SVNファイルを再帰的に削除する

SVNファイルを再帰的に削除する

私はまだbashシェルを学んでいます。

特定のフォルダのサブディレクトリにあるsvnファイルを繰り返し見つけて削除したいと思います。複製ではなくチェックアウトをするミスをして混乱を整理しようとします。

私はこれを試しましたが、見つかったすべてのファイルの出力のみを取得します。

rm | find -name ".svn"

これを実行すると、出力が出ず、ファイルはまだそこにあります。 find . -executable -o ! -regex '.*\.svn' -exec rm -i {} \+

答え1

より簡単な方法は出口確認する代わりにリビジョンをお願いします。 bashシェルを試してくださいsvn help export

find呼び出されたすべてのサブディレクトリを反復して削除するために実際に使用するには、.svn次のようにします。

find /path/to/search -type d -iname .svn -print0 | xargs -0 rm

編集する

  • -type d#ディレクトリのみ検索
  • -iname .svn #大文字と小文字を区別しない一致、必要ないかもしれません
  • -print0#ファイル名全体を印刷し、その後に改行文字の代わりにNULL文字が続きます。スペースやその他のスペースを含むファイル名を正しく渡すことができます。xargs -0

答え2

shopt -s globstar
rm -r **/.svn

答え3

findほとんどのバージョンには削除操作があります。

$ find /path/in/question -type d -name .svn -delete

必ず削除せずに実行し、結果を先に確認してみてください!

関連情報