Мне нужно распространять большой (6 ГБ +) файл кроссплатформенный. По практическим соображениям я хочу сжать его до 2 ГБ +. Первоначально я использовал Mac OS 10.11 для создания zip-файла с помощью Archive Utility. Он хорошо распакован на моем 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 (5 июля 2008 г.) и unzip
5.52 (28 февраля 2005 г.). Linux работает zip
3.0 (5 июля 2008 г.) и unzip
6.00 (20 апреля 2009 г.). Понятия не имею, что использует Windows. Мне нужен zip для правильного распаковки в Mac OS X, Linux и Windows (7, 8, 8.1 и 10). Я бы не хотел говорить людям о загрузке сторонней программы. Я также хотел бы понять, что, черт возьми, происходит. У меня никогда не было проблем с несовместимостью формата zip на разных платформах.
Для любого решения, которое вы предлагаете, необходима стандартная пост-Windows Vista, так как она будет самой большой целевой группой. Я знаю, что просьба заставить его работать на "Linux" немного не определена.
источник
Ответы:
unzip
версии до версии 6.0 не поддерживают извлечение ZIP-файлов, размер которых превышает 4 ГБ, в виде несжатых файлов (или 2 ГБ, 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. Версию 6.0 для MacOS можно получить здесь: http://www.macupdate.com/app/mac/35967/unzip . В этой статье описывается установка версии 6: https://apple.stackexchange.com/q/149080.Кроме того,
unzip
должен быть скомпилирован с параметрамиLARGE_FILE_SUPPORT
иZIP64_SUPPORT
для того, чтобы иметь возможность обрабатывать файлы выше 2 ГБ / 4 ГБ. Обычно так и должно быть. Чтобы узнать,unzip
была ли скомпилирована соответственно, наберитеunzip -version
. В выводе должно быть что-то вроде этого:Альтернативой
unzip
было использование,7zip
которое неофициально доступно для операционных систем, отличных от Windows - таких как MacOS (named7zX
).источник