递归删除 SVN 文件

递归删除 SVN 文件

我还在学习 bash shell。

我想递归地查找并删除给定文件夹的子目录中的 svn 文件。我犯了一个错误,就是签出而不是克隆,所以我正在努力清理我的混乱。

我已经尝试过这个,但我只得到找到的所有文件的输出:

rm | find -name ".svn"

当我运行它时,我没有得到任何输出,并且文件仍然存在: find . -executable -o ! -regex '.*\.svn' -exec rm -i {} \+

答案1

更简单的方法是出口您想要的修订版而不是检查它。尝试svn help export使用 bash shell。

如果您确实想使用find来遍历并删除所有调用的子目录,.svn您可以这样做:

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

编辑

  • -type d#仅查找目录
  • -iname .svn #不区分大小写的匹配,可能没有必要
  • -print0#打印完整的文件名,后跟空字符而不是换行符。它允许带有空格或其他空白的文件名正确传递到xargs -0

答案2

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

答案3

大多数版本都有find删除操作:

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

确保您在没有删除的情况下运行它并首先查看结果!

相关内容