我想从我的存储库中删除所有版本化的文件,但保留版本化的目录结构.显然我想保持所有.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 /).