Распространенная проблема заключается в том, что при распаковке (читай: «открыть двойным щелчком») некоторые .zip
файлы приводят к тому, что они имеют одинаковый размер .cpgz
. Но вместо этого вы ожидали разархивированный файл или папку.
Программа распаковки по умолчанию в OS X — «/System/Library/CoreServices/Archive Utility.app».
Когда вы пытаетесь разархивировать его в Терминале ( /usr/bin/unzip
), вы видите следующее:
$ unzip SE.zip
Archive: SE.zip
warning [SE.zip]: zipfile claims to be last disk of a multi-part archive;
attempting to process anyway, assuming all parts have been concatenated
together in order. Expect "errors" and warnings...true multi-part support
doesn't exist yet (coming soon).
error [SE.zip]: missing 8256083459 bytes in zipfile
(attempting to process anyway)
error [SE.zip]: attempt to seek before beginning of zipfile
(please check that you have transferred or created the zipfile in the
appropriate BINARY mode and that you have compiled UnZip properly)
У меня работает Mavericks 10.9.5, и a unzip -v
узнает, что мы используем версию 5.52:
$ unzip -v
UnZip 5.52 of 28 February 2005, by Info-ZIP. Maintained by C. Spieler. Send
bug reports using http://www.info-zip.org/zip-bug.html; see README for details.
...
Самое смешное, что тот же «поврежденный» zip-файл отлично извлекается в моей системе CentOS. Ошибки нет, файл вроде в порядке. Моя система CentOS запускает разархивированную версию 6.00:
$ unzip -v
UnZip 6.00 of 20 April 2009, by Info-ZIP. Maintained by C. Spieler. Send
bug reports using http://www.info-zip.org/zip-bug.html; see README for details.
...
Мой вопрос: Как я могу обновить свою версию unzip
до версии 6.00 или выше?
И связанный с этим вопрос: повлияет ли моя новая версия распаковки OS X на распаковку по умолчанию «Archive Utility.app»?
пс. Я предпочитаю использовать менеджер пакетов, как brew
указано выше, для компиляции из исходного кода. brew install unzip
приводит к:Error: No available formula for unzip
Использование Homebrew (по запросу):
$ brew tap homebrew/dupes
$ brew install unzip
Это установит распаковку по адресу (учитывая значения по умолчанию)/usr/local/Cellar/unzip/6.0/bin/unzip
Затем вы можете использовать псевдоним где- unzip6
то на своем пути.
Кроме того, вы можете попробовать «The Unarchiver» из магазина приложений. Гораздо полезнее, чем Apple Archive Utility.
ОБНОВИТЬ
dupes устарели в Homebrew, поэтому brew tap homebrew/dupes
в них больше нет необходимости. Все, что вам нужно сейчас (при условии, что Homebrew установлен):
brew install unzip
Затем вы можете добавить ссылку на /usr/local/bin
with:
ln -s /usr/local/opt/unzip/bin/unzip /usr/local/bin/unzip6
Теперь система unzip
должна работать с unzip
и Версия 6 будет работать сunzip6
brew tap homebrew/dupes
. Понятия не имею, что это делает, но теперь я могу распаковать brew install. Спасибо, куча.skipping: foobar need PK compat. v4.5 (can do v2.1)
для каждого файла в zip.dupes
, games
и php
т. д.unzip
, ), он не будет связывать это, поэтому его легко использовать. В случае с unzip
Homebrew он будет установлен в /usr/local/opt/unzip/bin/unzip
. Чтобы создать псевдоним или ссылку , используйте следующую команду (из командной строки (terminal.app)) ln -s /usr/local/opt/unzip/bin/unzip /usr/local/bin/unzip6
. Предполагая, что /usr/local/bin находится на вашем пути, вы можете использовать его unzip6
из командной строки или unzip
использовать значение по умолчанию для Mac.Вы можете обнаружить, что p7zip делает то, что вам нужно. Используйте brew install p7zip
для установки, затем запустите, 7z -h
чтобы получить помощь.
Когда я пишу это, я использую 7z t
zip-файл размером 20 ГБ, чтобы проверить его целостность. И Unzip 5.52, и Unzip 6.0 захлебнулись этим.
мммммм
КузенКокаин
Э. Джей Мак