假设我们有一个包含名为aq
的目录的zip文件,并且在当前工作目录中我们有文件:
./
|- aq/a.txt
|- b.txt
当我使用此命令时:
zip test.zip aq/*
a.txt
文件将压缩到zip文件中的aq
目录
问题是如何将b.txt
添加到aq
文件中的test.zip
目录中,而不将b.txt
放在aq
目录中就像我对a.txt
所做的一样,它在当前的工作目录中?
答案 0 :(得分:0)
创建一个名为的临时目录,例如/tmp/$$/aq/
,将符号链接到临时目录,然后执行:
(cd /tmp/$$ && zip -r $ZIPDEST aq/)
即。使用临时目录拉链。 zip默认遵循符号链接,因此它将文件放入zip中而不进行复制。
这就是我如何构建复杂的分层zip文件而不复制所有内容以进行存档。
当您将项目放入存档时,Tar有更好的重命名项目选项,但您询问了zip。