Linux

Linux & SVN:如何刪除所有版本化文件,但保留目錄結構,忽略 .svn 目錄?

  • October 26, 2010

我想從我的儲存庫中刪除所有版本化文件,但保留版本化目錄結構。顯然我想保持所有 .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/)。

引用自:https://serverfault.com/questions/195005