您的位置:首页 > 其它

2010-07-15 10:58 递归删除SVN工作目录下的.svn目录

2012-11-20 14:48 337 查看
要删除SVN工作目录下的.svn目录,而SVN Clinet 本身是不带清除.svn文件的命令的。所以只能自己写脚本来递归删除.svn文件夹:

1、windows 平台下

常用的作法是用系统(Windows)自带的搜索功能,搜索出所有.svn目录(需要在“其他高级选项”中选中“搜索隐藏的文件和文件夹”),然后全选删除。这当然不是高效的作法,谁能忍受一遍又一遍重复这种纯体力的劳动?

Jon Galloway提供了一段注册表代码,可以将”Delete SVN Folders”命名增加到资源管理器的右键上,这样,鼠标点两下就能把选中目录下的所有.svn目录干掉了。Works just great!

代码为:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]

@="Delete SVN Folders"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]

@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \""

将这段代码保存为一个.reg文件,双击确认导入注册表即可。

2、Linux平台下:

find . -type d -name ".svn"|xargs rm -rf

=========================================================

在linux递归删除某个文件夹(svn)的命令:

find . -name "*.svn" -type d -print -exec rm -rf {} \;

(1) "."表示从当前目录开始递归查找。

(2) “ -name "svn" "根据名称来查找。

(3) " -type d "查找的类型为目录

(4) "-print" 输出查找的文件目录名

(5) 最主要的是是-exec了,-exec选项后边跟着一个所要执行的命令,表示将find出来的文件或目录执行该命令。

exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{},一个空格和一个\,最后是一个分号。

在输出的时候,会有find: ./folder1/svn: No such file or directory 的打印。这种提示先不管他,至少我们的目的达到了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: