相关创建 zip 档案时指定顶级目录,有没有一种简单的方法来创建带有路径前缀的 zip 档案?
和柏油,可以使用--transform 's,^,/some/path/,'
,但此功能不适用于压缩公用事业。
例如,nodejs/
在包含以下内容的档案中添加前缀node_modules
,以创建AWS Lambda 层。
对于这种特定情况,解决方法是:
$ ln -s . nodejs
$ zip -r layer.zip nodejs/node_modules
答案1
使用 tar 即可,
--transform 's,^,/some/path/,'
但使用 zip 实用程序则无法使用。
该bsdtar
工具具有类似的-s
选项,并支持创建 Zip 档案:
bsdtar -c -a -f foo.zip -s ",^,foo/," *.txt
bsdtar
是 libarchive 的一部分,在大多数 Linux 发行版上可用。(Windows 10 也将 bsdtar 捆绑为 tar.exe,但不幸的是没有-s
支持。)