У меня есть большой zip-файл, как который я использую Терминал для разархивации, так:
unzip /Volumes/9.25.17\ Backup/Documents.zip -d /Users/evan/Desktop/
Когда я пробую это, все хорошо работает, пока это не пытается извлечь конкретный mp4 файл. Это становится одержимым этим файлом каждый раз:
inflating: /Users/evan/Desktop/Documents/Creativity/Rotblatt copy.mp4 error: zipfile read error
Я действительно не забочусь об этом файле - там какой-либо способ сказать терминалу игнорировать его при разархивации?
Дело не в том, что файл «copy.mp4» поврежден, а в том, что сам zip-файл имеет некоторые повреждения.
Вы можете попытаться исправить ZIP-файл:
zip -F /Volumes/9.25.17\ Backup/Documents.zip --out newfile.zip
и затем попытаться извлечь файлы из newfile.zip
. Если это не работает, вы можете попробовать более полное исправление:
zip -FF /Volumes/9.25.17\ Backup/Documents.zip --out newfile.zip
Найдите абсолютный путь к файлу с помощью:
unzip -l /Volumes/9.25.17\ Backup/Documents.zip | grep copy.mp4
Затем выполните:
unzip /Volumes/9.25.17\ Backup/Documents.zip -x "/path/to/file/from/step/1/copy.mp4" -d /Users/evan/Desktop/
У меня была подобная проблема из-за сбоя питания при записи некоторых данных и непосредственно передающий это для архивирования. Zip-файл пропускал окончание. zip -F
или zip -FF
не решил проблему. Наконец я нашел решение, которое позволило сохранить большую часть файла:
jar xvf Document.zip
Последняя часть поврежденного файла была все еще потеряна, но это было достаточно хорошо для меня.