将解压缩的文件添加到压缩文件夹

boo*_* na 56 zip mv

我正在尝试将解压缩的文件添加到现有的已压缩文件夹中,例如new folder.zip. zip -r new folder.zip添加一些解压文件后可以使用吗?这个命令会压缩文件夹吗?有没有其他方法可以做到这一点?

Eth*_*der 74

使用更新标志: -u

例子:

zip -ur existing.zip myFolder

此命令将压缩并添加myFolder(及其内容)到existing.zip.


高级用法:

更新标志实际上将传入的文件与现有文件进行比较,并将添加新文件或更新现有文件。

因此,如果您想添加/更新 zip 文件中的特定子目录,只需根据需要更新源,然后使用-u标志重新压缩整个源。只有更改过的文件才会被压缩。

如果您无权访问源文件,则可以解压缩 zip 文件,然后更新所需的文件,然后使用-u标志重新压缩。同样,只有更改的文件会被压缩。

例子:

原始来源结构


ParentDir
??? file1.txt
??? file2.txt
??? ChildDir
?   ??? file3.txt
?   ??? Logs
?   ?   ??? logs1.txt
?   ?   ??? logs2.txt
?   ?   ??? logs3.txt
Run Code Online (Sandbox Code Playgroud)

更新的源结构


ParentDir
??? file1.txt
??? file2.txt
??? ChildDir
?   ??? file3.txt
?   ??? Logs
?   ?   ??? logs1.txt
?   ?   ??? logs2.txt
?   ?   ??? logs3.txt 
?   ?   ??? logs4.txt <-- NEW FILE 
Run Code Online (Sandbox Code Playgroud)

用法

$ zip -ur existing.zip ParentDir 
> updating: ParentDir/ChildDir/Logs (stored 0%)
>   adding: ParentDir/ChildDir/Logs/logs4.txt (stored 96%)
Run Code Online (Sandbox Code Playgroud)


rye*_*ayo 6

我相信您可以使用以下命令添加文件:

zip -r zipfile.zip newfile.txt newfile1.txt

-rzip 命令的选项允许您添加文件。

  • `-r` 是递归选项。 (5认同)
  • 添加 — 更新现有条目并添加新文件。如果存档不存在,请创建它。这是默认模式。(不需要替换或添加文件的选项。如果添加目录,或者不添加目录时可以使用`-r`。好吧,任何时候你不想只添加目录而没有内容,所以几乎所有的时间。所以简而言之,这个例子是正确的,但解释是错误的。)(最好测试一下,这只是我对手册的解释)。 (2认同)
  • 出于安全原因,您确定要修改现有存档吗?相反,我至少会制作一份安全副本,进行添加,然后在提交新存档之前重新检查存档的完整性。 (2认同)