題 如何遞歸刪除.svn目錄?


如何遞歸刪除所有.svn目錄,從我所在的目錄開始?


7
2018-06-01 15:34


起源


什麼平台 - Windows? LINUX / UNIX?別的什麼? - Chris J
可能重複 用於遞歸刪除Windows上的所有.svn目錄的命令 - Chris J
它是在Linux上,Debian
有趣的是,我需要在早上將某些內容提交給一個善變的存儲庫。我最後在提交之前添加了所有內容並刪除了.svn文件夾。現在你想出了這個問題,顯然Ned的解決方案就是我需要的...... - Tom Wijsman


答案:


請記住,svn提供了“export”命令,它為您提供了工作樹的副本,但沒有填充所有.svn目錄。這可能就是您想要的。

$ svn export /tmp/copy_of_my_tree

13
2018-06-01 15:42



這不適用於回購,您無權訪問(例如壓縮並郵寄給您) - mbx


如果您使用的是Linux(或同等版本),則可以執行以下操作:

find . -name .svn -exec rm -rf {} \;

9
2018-06-01 15:36



或者,更好,正如Piskvor所提到的,使用 -type d 確保一個人不會意外刪除不是目錄的東西。 - JdeBP


在任何現代的類似UN * X的系統(Linux,Mac OS X,FreeBSD)中:

find . -type d -name '.svn' -exec rm -rf {} \;

找:

  • 在當前目錄中
  • 目錄
  • 有名字 .svn
  • 當發現時,跑 rm -rf 在每一個上

7
2018-06-01 15:37



這幾乎是規範的習語。你忘了 xargs 減少數量 rm 需要的過程: find . -type d -name '.svn' -print0 | xargs -0 rm -rf -- - JdeBP
添加到@ JdeBP的評論:一些 find 實現也支持 -exec rm -rf {} + 甚至 -delete 實現同樣的目標。 - grawity