Linux
Linux & SVN:如何刪除所有版本化文件,但保留目錄結構,忽略 .svn 目錄?
我想從我的儲存庫中刪除所有版本化文件,但保留版本化目錄結構。顯然我想保持所有 .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
應該符合要求(主要來自 find 手冊頁
-path
)。用管道將其減少並檢查一下。它所做的是首先找到(路徑以 .svn 結尾並且不遞歸到(修剪)此目錄)或(如果它是文件,則列印它)。如果它看起來不錯,請將其更改為
find dir/ -path '*/.svn' -prune -o -type f -exec rm {} +
- 版本將所有文件粘貼到一個 rm 命令中。如果您偏執,請先備份樹 (
cp -a dir/ otherdir/
)。