在过去的几个月里,我每周都将几个数据文件夹复制到 zip 文件中。现在我想将这些 zip 文件合并为一个 zip 文件,因为现有 zip 文件的大部分内容只是相同数据文件的不同版本。
因此,如果文件出现在多个现有 zip 文件中,我希望最新版本位于正在创建的新 zip 文件中。当然,如果一个文件只出现在一个现有的 zip 文件中,那么我也希望它出现在最终的 zip 文件中。
我试图避免将它们一个一个地解压缩到一个工作文件夹,用新的 zip 文件中的数据覆盖旧 zip 文件中的数据,然后将所有内容重新压缩到一个新的 zip 文件中。
据我所知 pkzip 会结合 zip 文件本身,但是有没有人可以告诉我一个可靠且快速的免费方法?
你不会喜欢它但是:以正确的顺序将所有内容解压缩到工作文件夹中,然后压缩结果是最有效的方法。
否则,您最终会浪费大量 CPU 周期:
所以,恕我直言,只需使用'解压缩' wiseley:
% mkdir all
% for x in *.zip ; do unzip -d all -o -u $x ; done
% zip -r all.zip all
Run Code Online (Sandbox Code Playgroud)
解压缩的顺序很重要,我不知道您的 zip 名称的模式,但我会先提取最新的 zip 文件,unzip 的“-u”选项仅覆盖较新的文件,否则创建文件已经在那了。因此,您将只解压缩最新的文件并且只将结果压缩一次。
https://linux.die.net/man/1/zipmerge:
zipmerge 将源 zip 存档合并
source-zip到目标 zip 存档中target-zip。默认情况下,源 zip 存档中的文件会覆盖目标 zip 存档中的同名现有文件。
| 归档时间: |
|
| 查看次数: |
80053 次 |
| 最近记录: |