删除任何 .svn 文件夹从根文件夹到其所有子文件夹

use*_*659 2 linux

我有一个文件夹,里面有一个 .SVN 解决方案。

我想遍历整个目录及其子目录,并删除 .svn 文件夹。

我已经安装了 bash,所以我可以在需要时使用 grep。

Dan*_*ley 7

find <path> -type d -name '.svn' -exec rm -rf {} \+
Run Code Online (Sandbox Code Playgroud)

查找名称为“.svn”的所有目录并递归删除它们。

如果您不拥有结帐目录并且不明白为什么会出现这些目录,我会非常谨慎地执行此操作。还要注意roe的回答 about svn export


fal*_*tro 6

在 bash 中:

removesvn() {
  cd $1
  for f in */.svn; do
    [ -d "$f" ] && removesvn ${f%/.svn}
  done
  [ -d "$f" ] && rm -rf .svn
}

removesvn .
Run Code Online (Sandbox Code Playgroud)

应该向下浏览包含 .svn 文件夹的所有文件夹并将其删除。

但是,您最好使用 svn 导出(svn export我相信)没有版本信息的香草树,这可能是您正在寻找的。

编辑
请注意,上面的 bash 脚本仅删除连接到原始文件夹的 .svn 文件夹(即,如果 b 不包含 .svn,则不会删除 a/b/c/.svn)。如果您只想清除文件系统中的 .svn 内容, find 可能会做得更好。

  • +1 为 `svn export` (4认同)