Если вы стали заложником ситуации, когда важный и нужный для вас ZIP-архив с данными ни в какую не хочет распаковываться, то можно попытать счастья восстановить его при помощи Терминала. К сожалению, битые архивы — не редкость в повседневной практике, однако в недрах Mac OS X имеется маленький помощник — консольная утилита для работы с ZIP-архивами. По-полной управляться с данной утилитой можно исключительно при помощи Терминала, и если нужный вам архив имеет не критичные повреждения, то его можно восстановить, сохранив таким образом всю или большую часть необходимой информации.
Ну что ж, приступим. Запускаем Терминал и выполняем вот такую команду:
zip
Без каких-либо параметров консольная утилита zip выдаст краткую справка по ключам и примерам их использования (на досуге можете изучить подробнее её возможности):
Из всей спраквки нас интересует всего два момента: формат команды и ключ -F, который как раз и оповещает утилиту о том, что заданный архив нужно восстановить. Используя информацию из справки получаем формат команды, которую нужно будет применять для восстановления повреждённого ZIP-архива:
zip -F /путь/повреждённый_архив.zip --out /путь/восстановленный_архив.zip
Теоретические данные — это хорошо, но практика — это совсем другое. Поэтому для чистоты эксперимента я при помощи HEX редактора специально повредил заранее созданный ZIP-архив с файлами и теперь попробую его восстановить.
Практика.
Обычное открытие повреждённого архива двойным кликом приводит к вот такой ошибке (или подобной ей):
Открываем Терминал и выполняем ранее полученную команду (для удобства я поместил испорченный архив на Рабочий стол, поэтому обратите внимание на пути к архивам, кгда будете пробовать восстановить архив у себя):
zip -F ~/Desktop/Архив.zip --out ~/Desktop/Восстановленный.zip
После выполнения команды Терминал выдаёт следующее сообщение:
В сообщении говорится, что архив имеет неверную структуру и что восстановить его не удалось, однако предлагается воспользоваться ключом -FF для повторной попытки. Пробуем:
zip -FF ~/Desktop/Архив.zip --out ~/Desktop/Восстановленный.zip
После выполнения данной команды (уже с ключом -FF), выдаётся сообщение со следующим вопросом:
Так как у меня архив единый, а не какая-то часть разбитого на части архива, то я указываю Y и нажимаю Enter. После этого в Терминале отображается процесс восстановления и на Рабочем столе создаётся восстановленный ZIP-архив:
Созданный на Рабочем столе восстановленный архив легко разархивировался обычным способом (двойным кликом). Вот и всё.
а я как раз думал чем можно архивчик один реанимировать.Вот бы еще и память чтобы вспомнить какой у меня админ пароль?А то забыл его а сбросить пока что не получается
Пост получился кстати 😉
Классно! Битый архив открылся. Спасибо за помощь!
Рад был помочь 😉
Благодарю за помощь! Проблему решил
Всегда пожалуйста.
все работает,но архив не восстановился,печалька…
Значит повреждения критические 🙁
спасибо ! только с помощью вашей инструкции смог открыть архив
Всегда пожалуйста 😉
У меня нет открылся((( Пишет при открытии восстановленного фала — ошибка 79 -несоответствующий тип файла. Что делать в таком случае, подскажите, пожалуйста?
Я делаю все, как у Вас написано, но у меня новый архив выдает ошибку 79 — несоответствующий тип файла (а ошибка первого архива «этот формат не поддерживается»). Первый файл на 18 гб, восстановленный таким же весом. Вы могли бы, пожалуйста, подсказать, что может быть поправить:
~ % Zip -FF ~/Desktop/Архив.zip —out ~/Desktop/Вост.zip
Fix archive (-FF) — salvage what can
Found end record (EOCDR) — says expect single disk archive
Scanning for entries…
Found spanning marker, but did not expect split (multi-disk) archive…
copying: __MACOSX/Мои файлы/С диска внешнего old school/MPSU Lenin/ВКР/OneNote/другие/._хим1.jpg (137 bytes)
copying: Мои файлы/С диска внешнего old school/MPSU Lenin/ВКР/OneNote/другие/биоСЕМ.jpg (343123 bytes)
copying: __MACOSX/Мои файлы/С диска внешнего old school/MPSU Lenin/ВКР/OneNote/другие/._биоСЕМ.jpg (137 bytes)
copying: Мои файлы/С диска внешнего old school/MPSU Lenin/ВКР/OneNote/другие/хим2.jpg
zip warning: no end of stream entry found: Мои файлы/С диска внешнего old school/MPSU Lenin/ВКР/OneNote/другие/хим2.jpg
zip warning: rewinding and scanning for later entries
# теперь пробую с -F:
~ % Zip -F ~/Desktop/Вост.zip —out ~/Desktop/Вост2.zip
Fix archive (-F) — assume mostly intact archive
Zip entry offsets do not need adjusting
zip warning: expected 7414 entries but found 2677
zip error: Zip file structure invalid (/Users/onelovedaria/Desktop/Вост.zip)