Answers:
使用更新标志: -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
更新了源代码结构
ParentDir
├── file1.txt
├── file2.txt
├── ChildDir
│ ├── file3.txt
│ ├── Logs
│ │ ├── logs1.txt
│ │ ├── logs2.txt
│ │ ├── logs3.txt
│ │ ├── logs4.txt <-- NEW FILE
用法
$ zip -ur existing.zip ParentDir
> updating: ParentDir/ChildDir/Logs (stored 0%)
> adding: ParentDir/ChildDir/Logs/logs4.txt (stored 96%)
我相信您可以使用以下命令添加文件:
zip -r zipfile.zip newfile.txt newfile1.txt
-r
zip命令的选项允许您添加文件。
-r
是递归选项。
-r
可以在添加目录时使用,也可以在不添加目录时使用。嗯,在任何时候都不想仅添加目录且不添加任何内容的情况下,几乎所有时间所以总之这个例子是正确的,但是解释是错误的。)(最好测试一下,这只是我对手册的解释)。
我成功使用了该zip
命令。使用grow(-g)选项,以添加folder1/folder2
包含文件fileA.txt
和的子文件夹fileB.txt
:
zip -gr folder.zip folder1/folder2
-r
表示递归目录。
根据我的理解,-g应该增长zip文件,而不是创建新的zip文件(这对于非常大的zip归档文件可能很有用)。如果出现问题,您可以首先尝试使用以下方法在folder.zip中创建子文件夹:
zip -g folder.zip folder1
zip -g folder.zip folder2