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命令或某种东西来完成这个任务,而且我在构build命令时遇到了麻烦。 谢谢您的帮助!

 find dir/ -path '*/.svn' -prune -o -type f -print 

应该符合法案(主要来自查找man -path )。 pipe到less,检查出来。 它的function是首先查找(path以.svn结尾,不会recursion到(修剪)此目录)或(如果它是一个文件,打印它)。

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

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

+版本将所有文件一起粘贴到一个rm命令中。 如果你偏执,先保留树的备份( cp -a dir/ otherdir/ )。

找 。  -not -path“* /。svn / *”-and -type f -and -exec / bin / rm'{}'\;

应该做的伎俩。