我如何指定在bash中使用的zip版本?


背景(不需要阅读)

我正在修改MS Office文件的工作(试图找出自动生成任意长度的Excel和PowerPoint文件的最快,最简单的方法)。 由于实际的excel文件只是压缩文件的.xlsx附加到文件名,我已经解压缩,编辑xml,重新压缩它们,并看看OpenOffice是否仍然可以加载它们。

不过,我已经意识到(在没有太多这样的testing之后,谢天谢地),默认情况下,bash中的zip命令(或者至less在我的mac上)是以一种只需要unzip v1 .0提取,但正常的excel文件压缩的​​方式,他们需要v2.0提取。 我检查这是一个问题,通过压缩和解压缩我知道正常加载的Excel文件,然后尝试加载它。 OpenOffice很不高兴。

所以,我知道我需要制作文件的zip文件,就像excel一样,但是如何做到这一点我不确定。 我在我的电脑上压缩版本3,所以希望如果压缩/解压缩发布周期是同步的应该是可能的,但我没有看到任何东西立即似乎是解决scheme。

编辑:和zip -9(哪个zip -h有用地说,指示zip“更好的zip”)仍然只需要v1.0提取。


题:

我怎样才能在bash中指定我想压缩zip文件的方式,这将需要解压缩v2.0来解压缩?

通常,由不同版本产生的压缩文件之间不兼容的原因是所使用的压缩algorithm。 如果文件是使用zip 1.0中不存在的algorithm压缩的,那么会导致您看到的不兼容性。

查看您的zip实用程序的手册页,查看是否有指定要使用的压缩types的选项。 如果有,请查看从Excel创build的现有文件,并找出它们压缩的压缩algorithmtypes,然后使用它。

在我的Linux系统上,zip报告“这是邮编2.31(2005年3月8日),由Info-ZIP”,并且它没有指定压缩algorithm的选项。 在我的Windows系统上, 7-zip确实有这个选项,看起来他们有一个Mac版本可用,所以如果你的zip实用程序不支持这个选项,你可以尝试一下。