Linux和SVN:如何删除所有版本化文件但KEEP目录结构,忽略.svn dirs?

我想从我的存储库中删除所有版本化的文件,但保留版本化的目录结构.显然我想保持所有.svn目录不变.

换句话说,我想完全清空工作副本的目录结构,而不会损害目录结构本身.

例如,从此结构中删除文件:

dir/
    .svn/
        [files]
    svsubdir1/
        file1
        .svn/
            [files]
    subdir2/
        file2
        file3
        file4
        .svn/
            [files]
        subsubdir1/
            file5
            .svn/
                [files]

应该导致:

dir/
    .svn/
        [files]
    svsubdir1/
        .svn/
            [files]
    subdir2/
        .svn/
            [files]
        subsubdir1/
            .svn/
                [files]

我正在寻找某种类型的find命令或者其他东西来完成这个,而且我在构造命令时遇到了麻烦.谢谢您的帮助!

最佳答案
find dir/ -path '*/.svn' -prune -o -type f -print

应该适合该法案(主要来自-path的查找手册).将它管道减少并检查出来.它的作用是首先找到(路径以.svn结尾,不要递归到(修剪)这个目录)或(如果它是一个文件,打印它).

如果看起来不错,请将其更改为

find dir/ -path '*/.svn' -prune -o -type f -exec rm {} +

该版本将所有文件合并为一个rm命令.如果你是偏执狂,请先备份树(cp -a dir / otherdir /).

转载注明原文:Linux和SVN:如何删除所有版本化文件但KEEP目录结构,忽略.svn dirs? - 代码日志