以更高的压缩率压缩zip文件


10

我有大量使用zip命令压缩的zip文件。我想用-9标志重新压缩它们以提高压缩率。有谁知道如果不手动解压缩然后再压缩就可以做到这一点。

PS。我需要将它们保留为zip文件,因为它们是供Windows用户使用的(因此名称中包含空格)


只有通过解压缩文件然后再次进行压缩,才能进行重新压缩。它取决于算法。您也可以尝试使用bzip2甚至更好的xz。

提示:这也可以使用XLSX或XLSM Excel文件来完成,因为它们实际上是包含XML和其他内容的ZIP文件。
Cristian Ciupitu

Answers:


10

如果不对数据进行解压缩,则无法提高压缩率。您不必在压缩之前提取所有zip文件,但我建议在重新压缩之前先解压缩一个完整的zip文件。

可以一次将一个zip文件中的文件重新压缩一次,然后再重新添加它们,然后再转到zip文件中包含的下一个文件。对于包含N个文件的zip文件,这需要对zip文件进行N次重写。一次提取N个文件并生成新的zip文件,并使用压缩所有文件,效率更高-9


1
我的目标不是避免减压,而是保持存档结构不变。并且不更改任何文件元数据。
Smartelf 2014年

1
@Smartelf我认为您不能避免减压。您的其他要求是可能的,没有任何理由必须更改任何数据。
terdon

2
正如我已经指出的,@ Smartelf,您必须**重新压缩。如果执行此操作,例如使用Python程序及其zip模块,则分配相同的文件元数据应该不会有问题。使用unzip/ zip保持元数据相同可能更困难。
Anthon

6

有一个名为AdvanceCOMP的实用程序可以完全满足您的需求。它可以重新压缩ZIP和GZ文件(以及其他一些文件),而无需中间提取到磁盘。(我确实相信所使用的机制是解压缩数据并重新压缩它,但这不需要将文件写入磁盘或重新生成元数据。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.