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

时间:2012-06-21 16:25:50

标签: excel zip powerpoint unzip


背景(无需阅读)

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

然而,我已经意识到(在没有太多这样的测试之后,谢天谢地),默认情况下,bash中的'zip'命令(或者,至少在我的mac上)是以仅仅格式压缩文件需要解压缩v1.0才能解压缩,但正常的excel文件会被压缩,需要v2.0才能解压缩。我检查这是一个问题,通过压缩和解压缩我知道正常加载的excel文件,然后尝试加载它。 OpenOffice很不高兴。

所以,我知道我需要使文件拉链完全符合excel的方式,但如何实现这一点我不确定。我的计算机上有zip版本3,所以希望如果zip / unzip发布周期是同步的,那么应该是可能的,但我在man页面上没有看到任何立即出现的解决方案。

编辑: 而zip -9(zip -h有助于说明拉链到'拉链更好')仍然只需要v1.0来提取。


问题:

如何在bash中指定我希望zip压缩文件,以便解压缩v2.0解压缩?

1 个答案:

答案 0 :(得分:1)

通常,不同版本生成的压缩文件之间不兼容的原因是使用的压缩算法。如果使用zip 1.0中不存在的算法压缩文件,则会导致您看到的不兼容性。

查看zip实用程序的手册页,查看是否有指定要使用的压缩类型的选项。如果有,请查看从Excel创建的现有文件,并找出它们压缩的压缩算法类型,并使用它。

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