压缩文件时不包括目录


11

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

zip -0 ../backup/backup.zip \
-r ./* \
-x \*CVS\* \
-x *Thumbs.db* \

它要备份的目录是一个SVN归档文件(以前是CVS)。我一直无法获得排除.svn及其内容的信息。排除.svn(递归遍历整个树)的最干净方法是什么?

Answers:


8
zip -0 ../backup/backup.zip -r . -x "*CVS*" "*Thumbs.db*" "*.svn*"

-x 还接受排除列表。

或者,创建一个包含您的排除项的文件列表,然后在其中添加它们。
exclude.lst:

*CVS*
*Thumbs.db*
*.svn*
exclude.lst

使用命令:

zip -0 ../backup/backup.zip -r . -x@exclude.lst

-x "*CVS*"排除名称包含CVS作为子字符串(的同上.svn)的任何文件或目录。
吉尔(Gilles)“所以,别再邪恶了”,

2
zip ../backup/backup.zip \
  -x '/CVS/*' -x '*/CVS/*' \
  -x '/.svn/*' -x '*/.svn/*' \
  -x '/Thumbs.db' -x '*/Thumbs.db' \
  -r .

请注意,您发布的排除模式不太正确,它们排除了名称包含的 任何文件或目录CVS

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.