2008-11-05 152 views
22

有沒有辦法刪除一個文件夾,我們可以從SVN trunk中遞歸地調用它的FolderX?在谷歌快速搜索只告訴我如何遞歸刪除所有.svn目錄,這是不是我想要做的SVN遞歸刪除

+0

「svn rm FolX」有什麼問題? – 2008-11-05 04:57:28

+1

他在說整個樹上有多個FOIX dirs。你的命令只會刪除當前目錄中的一個。 – 2009-07-14 00:42:59

回答

31

嘗試像POSIX的系統上執行以下操作:

find ./ -name "FolderX" | xargs svn delete --force 

這會發現所有匹配從當前目錄開始的文件/文件夾並對它們執行操作,即svn delete。我不確定如何在沒有cygwin的情況下在Windows中執行此操作。

對於Win32中,評論者提出以下類似的解決方案(CMD):

for /R . %1 in (*.EXT) do svn delete %1 
+1

我真的希望有一個等效的Windows命令提示符命令。我想可以安裝cygwin。 – 2010-02-02 17:19:04

+3

發現它,我想遞歸刪除我的存儲庫中的所有* .EXT文件,它在Win32命令(DOS)中的提示條款是: for/R。 (* .EXT)中的%1做svn刪除%1 – 2010-02-02 17:28:56

4

svn delete FolX --force應該做的,即使有子樹中的版本文件的伎倆。

0

我創建了一個SH輕鬆地爲 「RM」 共同運行。

  • 在 「在/ usr/bin中」 創建 「rm_svn_dirs」 文件,認沽:

#!/bin/bash

if [ $\# -eq 0 ] ; then

echo 
    echo "Path not found" 
    echo "Use:" 
    echo " $0 path"` 
    echo " $0 /var/www/test/svn/website" 
    echo " $0 ." 
    echo "Operation cancelled" 
    echo 
    exit 1 
fi 

echo 
echo "Recursively delete .svn directories in:" 
if [ $1 != "." ] ; then 
    echo $1 
else 
    pwd 
fi 

echo 
read -p "Continue? [Yes/No]: " x 
if [ "$x" != "Yes" ] ; then 
    echo "Operation cancelled" 
    echo 
    exit 1 
fi 

find $1 -name .svn -exec rm -rf {} \; 
echo "End!" 
echo 
exit 0` 
  • 保存文件,並使其可執行:

    chmod +x rm_svn_dirs

  • 要使用:

    rm_svn_dirs /var/www/svn/www

    rm_svn_dirs ./svn/www

    rm_svn_dirs .

0

它的工作很適合我

find directory_to_delete/ -type d -name '*.svn' | xargs rm -rf 
0

不要忘了一倍%,如果你想在一個批處理文件來使用它:

用於/ R。 %1中(* .EXT)做的svn刪除%1

_

爲/ R。 (* .EXT)%% 1做svn刪除%% 1