Ошибка лишних байтов при распаковке файла


28

Когда я вхожу unzip ../founation-latest.zip, он выводит это:

предупреждение [../foundation-latest.zip]: 248 дополнительных байтов в начале или внутри zipfile (попытка обработать в любом случае)

Файл 138 КБ. Он правильно распаковывается, но почему я получаю эту ошибку?


2
Одной из возможных причин является то, что на одном шаге пути к вашей системе он был перенесен ftpв режиме ASCII, а не в режиме BINARY, и были добавлены некоторые байты. Если вы использовали ftpна каком-либо этапе, запустите ftpснова, используя команду «bin» перед любым «put» или «get».
Марк Плотник

В начале он может иметь вредоносную нагрузку. Это враждебный интернет. Будьте осторожны с той утилитой распаковки, которую вы используете, чтобы открыть подобный zip-архив.
jbrahy

В текущих ответах много догадок, потому что есть много возможных причин. Было бы полезно иметь ссылку или копию рассматриваемого файла.
duozmo

Что касается возможной злонамеренной дополнительной нагрузки: при таком размере вы можете загрузить файл на virustotal.com, чтобы проверить его - на случай, если там нет личной информации. Однако я не стал бы сильно беспокоиться о вирусах в Linux, только если вы скопируете оригинальный файл в другое место. (Вы всегда можете заново упаковать файл, если считаете, что данные полны.)
Нед64

Просто чтобы подтвердить, что это проблема. Я попытался создать резервную копию моего файлового пространства iTunes с обоими zipи с ditto. unzipПри условии , (по 10.11) удалось с обоими из них, а также 7za. MacOS unzip просто не любит (большие?) Файлы zip.
Отей

Ответы:


37

Моя проблема была в том, что я пытался использовать «разархивировать» на MAC OSX, который не может обрабатывать файлы, упакованные с помощью PKZIP.

Я смог brew install p7zipразархивировать с помощью команды 7za x some_file.zip.

Первоначально я нашел решение в этой статье: need-pk-compat-v4-5-can-do-v2-1


4
Я загрузил Windows VM с microsoft.com, и это было решением для разархивирования.
Сед

1
Это также может применяться к разархивированию в Linux (в моем случае: UnZip 6.00 от 20 апреля 2009 г., от Debian.)
BradHards

2
Стоит также упомянуть, что это немного быстрее и показывает прогресс.
previous_developer

Кроме того, p7z обрабатывает большие файлы и файлы с более новым zip
Konrads

Та же проблема сегодня на образе AWS linux. Загрузил RPM- пакет p7zip с timeoff.wsisiz.edu.pl/rpms.html, а архив протестирован и извлечен без проблем.
звездочки

23

Я нашел эту тему, у которой была похожая проблема. Отчет об ошибке называется: unzip завершается с ошибкой на 5,4 ГБ ZIP с «дополнительными байтами в начале или внутри zipfile» . Одним из предложенных исправлений было использование этой команды в .zipфайле.

$ zip -FFv foo.zip --out fixed.zip

Пример выполнения

$ zip -FFv foo.zip --out fixed.zip
Fix archive (-FF) - salvage what can
 Found end record (EOCDR) - says expect single disk archive
Scanning for entries...
 Local ( 1      0): copying: d1/f1   (651734 bytes)
 Local ( 1 651817): copying: d1/d2/  (0 bytes)
 Local ( 1 651905): copying: d1/d2/f3   (80 bytes)
 Local ( 1 652083): copying: d1/f23   (891 bytes)
 Local ( 1 653021): copying: d1/f27   (8764 bytes)
 Local ( 1 661837): copying: d1/f24   (14818 bytes)
 Local ( 1 676709): copying: d1/f25   (17295 bytes)
...
 Cen   ( 1 5488799949): updating: d1/f13
 Cen   ( 1 5488800052): updating: d1/f14
Zip64 EOCDR found ( 1 5488800155)...
Zip64 EOCDL found ( 1 5488800211)...
EOCDR found ( 1 5488800231)...
$ echo $?
0

Zip-переключатель

выдержка из страницы руководства zip

       -FF
       --fixfix
              Fix the zip archive. The -F option can be used if some 
              portions of the archive are missing, but requires a reasonably 
              intact central directory.   The  input  archive is scanned as 
              usual, but zip will ignore some problems.  The resulting 
              archive should be valid, but any inconsistent entries will be 
              left out.

              When doubled as in -FF, the archive is scanned from the 
              beginning and zip scans  for  special  signatures  to  
              identify  the  limits between the archive members. The single 
              -F is more reliable if the archive is not too much damaged, so 
              try this option first.

              If  the archive is too damaged or the end has been truncated, 
              you must use -FF.  This is a change from zip 2.32, where the 
              -F option is able to read a truncated archive.  The -F option 
              now more reliably fixes archives with minor damage and the -FF 
              option is  needed to fix archives where -F might have been 
              sufficient before.
              ...

3

Я видел этот тип ошибки раньше, когда zip-архив передавался через веб-сервис, который имел проблемы. После непосредственного изучения zip-файла я обнаружил сообщение об ошибке, отправленное веб-службой перед zip-файлом.

Вы можете попробовать просмотреть zip-файл в виде текста и посмотреть, появится ли что-нибудь интересное спереди.


3

Просто тоже получил это предупреждение. В моем случае это было вызвано загрузкой его с помощью 'curl -i', в результате чего заголовки http появились в начале zip-файла. я такой глупый. Конечно, это не будет причиной / решением во всех случаях, но, возможно, это кому-то поможет ...


2

Это может быть самораспаковывающийся архив (windows .exe) или по какой-то причине он был дополнен.


1
Что ты имеешь в виду под "подбитым"?
rainwater11

Дополнительные байты (обычно ноль (ноль)), чтобы сделать файл определенной длины. Раньше это был артефакт размера блока передачи файлов (например, xmodem), но в современном мире этого не происходит. Это также может быть криптографическая подпись. (У меня нет файла, поэтому я не знаю, что это за 248 байт.)
Рикки Бим

0

У меня тоже была такая же проблема. Я наблюдал проблему, когда копировал файлы с Windows на сервер Unix без использования режима bin. Лучший способ решить эту проблему - перевести файлы в режим bin.


(1) Эта информация уже была представлена ​​в комментарии . Это нормально, но… (2) комментарий содержит более подробную информацию, чем этот ответ. (3) Вы должны улучшить этот ответ, описав, о чем вы говорите. Пожалуйста, не отвечайте в комментариях; отредактируйте свой ответ, чтобы сделать его более понятным и полным.
Скотт

0

У меня была та же проблема в Linux с .zipфайлом размером более 4 ГБ, дополненнымonly DEFLATED entries can have EXT descriptor ошибкой.

Команда 7z x решила все мои проблемы, хотя.

Будьте осторожны, команда 7z xизвлечет все файлы с путем, корнем которого является текущий каталог. Опция -oпозволяет указать выходной каталог.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.