如何使用7-zip备份文件,但排除某些目录


Answers:


35

要排除所有.svn目录,您需要添加-xr!?svn\*开关

例如,以下将创建该C:\Project\To\Backup目录的备份,其中不包括满足?svn以下条件的所有文件夹:

"C:\Program Files\7-Zip\7z.exe" a -r -tzip -y -xr!?svn\* Project.zip C:\Project\To\Backup\*

谢谢ManiacD,但我无法使它正常工作-xr!?svn *给我一个错误,如果我尝试-xr!.svn *,它仍然不会排除.svn
Mikael Sundberg

您需要在?svn之后加上反斜杠才能使其正常工作,以表示要排除.svn目录下的所有内容。-xr!?svn \ *
ManiacD 2009年

别担心,最初在使它也正常工作时会遇到很多问题。7-zip使用!排除开关-x(-xr递归目录)。根据通配符搜索排除文件名。如果没有反斜杠,它将尝试排除与?svn *相匹配的文件名。带有\ *结尾的asvn.log表示在与?svn匹配的目录下不包含任何内容
ManiacD 2009年

有关如何使用通配符的详细信息,请查看7-Zip随附的帮助文件。几天前帮助我解决了类似的任务。7-Zip使用通配符有点...不同;)
släcker09年

3
并且,如果您在这里偶然发现了常规的文件夹排除功能,请注意,?它与“ period-svn”(.svn)匹配,因此要跳过文件夹中的所有内容,SkipMe请使用-xr!SkipMe\*
drzaus

13

我建议不要使用7-Zip来排除.svn(或可能是_svn)文件夹,而是建议使用svn export命令(使用SlikSVN中的svn.exe)将工作副本导出到临时文件夹:

svn export C:\Path\To\WC C:\Backup\Staging

然后使用7-Zip,如下所示:

7z.exe a "C:\Parth\To\Archive" "C:\Backup\Staging\*" -bd t7z -v2g -r

然后删除暂存文件夹。

这就是我备份本地工作副本的方法。


感谢您的出口提示。TortoiseSVN菜单上也可用。
Arnold Spence 2010年

12

您可以使用文件或目录列表排除7zip文件:

/path/to7Zip/7z a -bd f:/backup/backup_2009-08-23_daily.zip home \
          '-xr@\path\to\backup_daily_exclude.lst'

排除文件如下所示:

home\Photos\iPod*
home\dhltd\*
BlogMatrix\Sparks\db\*.archive
home\eclipse\*
.svn

关键字是-xr,尤其是“ r”,它指示递归将排除列表应用于目录的每个级别。您可能要使用2个排除文件列表,一个用于绝对排除,一个用于递归排除。上面的内容来自在cygwin中运行的bash脚本。


4

当我使用

"C:\Program Files\7-Zip\7z.exe" a -r -ttar -xr!?git\* aufs2-util.tar aufs2-util\*

它最终添加了我不想要的.git目录,将其更改为

"C:\Program Files\7-Zip\7z.exe" a -r -ttar -xr!?git\ aufs2-util.tar aufs2-util\*

得到了预期的结果。


3

当我使用

7z a "D:\codebase\w.7z" "D:\codebase\Edison\otm\Webapp" -t7z -mx0 -xr!WEB-INF\*

不排除WEB-INF目录。在目录名称前添加星号

7z a "D:\codebase\w.7z" "D:\codebase\Edison\otm\Webapp" -t7z -mx0 -xr!*WEB-INF\*

得到了想要的结果。


星号部分是最重要的。这应该获得更多投票。
Valerio '18

0

对我来说,我试图备份一堆Maven代码目录,并希望排除任何名为“ target”的目录:

"C:\Program Files\7-Zip\7z.exe" a -r -tzip -y -xr!*\target\* site.zip C:\code\site\

相关排除参数为-xr!*\target\*

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.