创建提取跨平台的ZIP文件


0

我需要分发一个大型(6GB +)文件跨平台。出于实际原因,我想将它压缩到2GB +。我最初使用Mac OS 10.11使用Archive Utility创建zip文件。它在我的Linux上提取得很好,但不能在Windows 10上提取(使用系统实用程序)。在Linux上压缩原始文件时,我可以在Windows 10上解压缩但在Mac OS X上无法解压缩。当我尝试使用命令行程序解压缩时 unzip 在Mac OS X上,我收到以下错误:

Archive:  UbuntuLTS.vdi.zip
warning [UbuntuLTS.vdi.zip]:  76 extra bytes at beginning or within zipfile
  (attempting to process anyway)
error [UbuntuLTS.vdi.zip]:  reported length of central directory is
  -76 bytes too long (Atari STZip zipfile?  J.H.Holm ZIPSPLIT 1.1
  zipfile?).  Compensating...
   skipping: UbuntuLTS.vdi           need PK compat. v4.5 (can do v2.1)

note:  didn't find end-of-central-dir signature at end of central dir.
  (please check that you have transferred or created the zipfile in the
  appropriate BINARY mode and that you have compiled UnZip properly)

Mac正在运行 zip 3。0(2008年7月5日)和 unzip 5。522(2005年2月28日)。 Linux正在运行 zip 3。0(2008年7月5日)和 unzip 6。00(2009年4月20日)。不知道Windows正在使用什么。我需要在Mac OS X,Linux和Windows(7,8,8.1和10)上正确提取zip。我想避免告诉人们下载第三方程序。我还想了解到底发生了什么。我从来没有遇到过zip格式在不同平台上不兼容的问题。

对于您提出的任何解决方案,开箱即用的后Windows Vista是必须的,因为那些将成为最大的目标群体。我知道要求它在“Linux”上工作有点不明确。


你不是在创建一个自解压zip存档而只是一个普通的zip存档?你使用64位版本的zip吗?也许 superuser.com/q/394905/504096 回答你的问题这个文本( en.wikipedia.org/wiki/Zip_%28file_format%29#ZIP64 )帮助你?最初,zip标准仅允许压缩4 GB(不是生成的存档文件的大小)。
daniel.neumann

我不知道尺寸限制。看来,罪魁祸首是Mac OS X不支持ZIP64解压缩。从您提供的维基百科参考资料中,我推断所有XP后Windows版本都支持ZIP64。对于OS X用户,我可能需要提供替代.tar.gz下载。干得好,Apple。
Jonas

显然,用于Mac的unzip 6.0版支持更大的文件( unix.stackexchange.com/a/220054 macupdate.com/app/mac/35967/unzip )。以下是有关如何获取6.0版的进一步提示: apple.stackexchange.com/q/149080 。这值得回答你的问题吗?
daniel.neumann

如果你想要把这个作为答案重新发布,我很乐意接受它。不幸的是,我不能假设我的观众能够通过自制软件安装一些东西,所以我会坚持单独的tar.gz.
Jonas

有一个Mac版本的Windows程序7zip可用。也许您的受众可以安装它。谢谢你接受了答案。
daniel.neumann

Answers:


1

unzip 版本6.0之前的版本不支持提取大于4 Gb的zip文件作为未压缩文件(或2 Gb, http://www.info-zip.org/FAQ.html#limits )。例如,参见 https://superuser.com/a/394915/504096 https://unix.stackexchange.com/a/220054

不幸的是,标准版 unzip 由MacOS提供的不是6.0而是5.X.可以在此处获取适用于MacOS的6.0版: http://www.macupdate.com/app/mac/35967/unzip 。本文介绍如何安装版本6: https://apple.stackexchange.com/q/149080

另外, unzip 需要使用选项进行编译 LARGE_FILE_SUPPORTZIP64_SUPPORT 为了能够处理2 Gb / 4 Gb以上的文件。通常情况应该如此。要了解,是否 unzip 相应编译,输入 unzip -version。输出中应该有这样的东西:

UnZip 6.00 of 20 April 2009 ...
...
UnZip special compilation options:
...
LARGE_FILE_SUPPORT (large files over 2 GiB supported)
ZIP64_SUPPORT (archives using Zip64 for large files supported)
....

替代 unzip 是用的 7zip 非Windows操作系统非正式可用 - 如MacOS(命名为 7zX )。

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.