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 /).

相关文章

文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限...
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Wi...
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Lin...
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,...
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 Open...