我想创建一个忽略文件夹结构并排除特定子文件夹内容的 zip 文件。
我努力了:
zip -rj /path/to/target.zip /path/to/source -x "/path/to/source/subfolder/*"
它不起作用,zip 返回消息:
zip 错误:无需执行!(/path/to/target.zip)
答案1
摘录man 1 zip
[...] 输入模式,例如
/foo/bar/*
通常会匹配两个路径,* 匹配 dir/file1.c 和 file2.c。请注意,在第一种情况下,匹配中越过了目录边界 (/)。使用 -ws 时,匹配中不会包含任何目录边界,从而使通配符局限于特定目录级别。因此,启用 -ws 后,只会匹配第二个路径。
当使用 -ws 时,使用 ** 来跨目录边界进行匹配,就像 * 通常所做的那样。
使用时也是如此-x
因此,为了达到您的目的,请将*
排除模式加倍,如果它是一个目录:
zip -rj /path/to/target.zip /path/to/source -x "/path/to/source/subfolder/**"