压缩文件时排除目录

11 scripting bash zip

我有一个 bash 脚本,它执行如下操作:

zip -0 ../backup/backup.zip \
-r ./* \
-x \*CVS\* \
-x *Thumbs.db* \
Run Code Online (Sandbox Code Playgroud)

它备份的目录是一个 SVN 归档文件(过去它曾经是 CVS)。我一直无法让它排除 .svn 及其内容。排除 .svn 的最干净方法是什么(递归遍历整个树)?

wag*_*wag 8

zip -0 ../backup/backup.zip -r . -x "*CVS*" "*Thumbs.db*" "*.svn*"
Run Code Online (Sandbox Code Playgroud)

-x 也接受排除列表。

或者,创建一个包含排除项的文件列表并将它们添加到那里。
exclude.lst:

*CVS*
*Thumbs.db*
*.svn*
exclude.lst
Run Code Online (Sandbox Code Playgroud)

使用命令:

zip -0 ../backup/backup.zip -r . -x@exclude.lst
Run Code Online (Sandbox Code Playgroud)