Unix:zip 文件夹忽略文件夹结构并排除子目录

Unix:zip 文件夹忽略文件夹结构并排除子目录

我想创建一个忽略文件夹结构并排除特定子文件夹内容的 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/**"

相关内容