3

Вышеприведенный вопрос об этом покрывает: мне очень жаль, я все время вижу ответы, но, хотя и очень четко, я просто не могу применить их к своему терминалу.

У меня есть заархивированная папка, я не могу открыть ее в архиве: я получаю следующую ошибку:

Archive:  /home/elansa/Music/Music.zip
Zip file size: 2011856896 bytes, number of entries: 4693

warning [/home/elansa/Music/Music.zip]:  end-of-central-directory record claims this
  is disk 176 but that the central directory starts on disk 20153; this is a
  contradiction.  Attempting to process anyway.
error [/home/elansa/Music/Music.zip]:  missing 3025939027 bytes in zipfile
  (attempting to process anyway)
error [/home/elansa/Music/Music.zip]:  start of central directory not found;
  zipfile corrupt.
  (please check that you have transferred or created the zipfile in the
  appropriate BINARY mode and that you have compiled UnZip properly)

Я читал, что такого рода ошибки могут быть исправлены в терминале. Это правда? если так, могу ли я иметь указания? Я никогда не был в состоянии открыть почтовый индекс. Я не верю, что я глуп, но это просто ускользает от меня.

Любая помощь будет принята с благодарностью.

4 ответа4

5

Прежде всего, файл, который вы указали в своем сообщении, не является файлом .tar.gz. Похоже, это ZIP-файл. ZIP-файл также выглядит как поврежденный или неполный.

Но чтобы ответить на ваш вопрос, если у вас есть файл .tar.gz (допустим, у вас есть music.tar.gz в вашем домашнем каталоге), вы должны извлечь содержимое следующим образом (предполагается, что вы находитесь в том же каталоге, что и файл .tar.gz)

tar -xzvf music.tar.gz

Это позволит извлечь архив .tar.gz в текущем каталоге (ваш домашний каталог).

-z : Uncompress the resulting archive with gzip command.
-x : Extract to disk from the archive.
-v : Produce verbose output i.e. show progress and file names while extracting files.
-f music.tar.gz : Read the archive from the specified file called music.tar.gz.

Несколько вопросов для вас. Вы создали этот zip-файл в системе Linux или в Windows? Я видел, что если вы создаете файл с помощью WinZIP, по какой-то странной причине архив будет отображаться как неполный, когда вы пытаетесь извлечь его в Linux или Mac OS X. Если вы создали ZIP-файл в Windows с помощью WinZIP, попробуйте чтобы открыть его в Windows с помощью WinZIP и посмотреть, сможете ли вы хотя бы просмотреть список файлов, содержащихся в архиве. Если вы можете, извлеките файлы в Windows и используйте реальный инструмент архивирования, такой как 7 Zip или WinRAR, чтобы заново создать архив.

Другой вариант - использовать команду unzip в Linux в командной строке. Синтаксис будет

unzip music.zip

который распакует архив в текущую папку.

4

Этот вопрос касается восстановления поврежденного zip-файла - утилиты терминала (linux) для восстановления поврежденных zip-файлов

Разобравшись немного с ответами, вы захотите сделать что-то вроде:

zip -F /home/elansa/Music/Music.zip --out Music_fixed.zip
unzip Music_fixed.zip

Если это не сработает, попробуйте:

zip -FF /home/elansa/Music/Music.zip --out Music_fixed.zip
unzip Music_fixed.zip

Согласно zip-руководству, лучше сначала попробовать просто -F:

Один -F более надежен, если архив не слишком сильно поврежден, поэтому сначала попробуйте этот вариант.

Так как кажется, что вы новичок в командной строке, и я не уверен, что программа zip устанавливается по умолчанию в Linux Mint, вот команда для ее установки:

sudo apt-get install zip

Надеюсь это поможет.

3

У меня была такая же проблема с очень большим ZIP-файлом, созданным в Windows. Запуск zip-инструмента вызвал ту же ошибку, которую описали другие (это на OS X с Zip 3.0):

bash-3.2$ unzip -l Users.zip 
Archive:  Users.zip
warning [Users.zip]:  126463302015 extra bytes at beginning or within zipfile
  (attempting to process anyway)
error [Users.zip]:  start of central directory not found;
  zipfile corrupt.
  (please check that you have transferred or created the zipfile in the
  appropriate BINARY mode and that you have compiled UnZip properly)

Решением в моем случае было использование пакета p7zip (http://p7zip.sourceforge.net/ или использование вашего любимого менеджера пакетов). Это сработало без нареканий:

bash-3.2$ 7z l Users.zip
<tons of successful output>

Кто-то еще описал этот точный сценарий здесь: http://www.linuxquestions.org/questions/linux-software-2/unzip-error-in-linux-error-zip-file-too-big-939528/.

0

Возможно, это не по теме, хотя поверх ответа Грэма использование -FFzf сработало в моем случае. Я пытался распаковать файл 6.6G, который, вероятно, был сжат в Windows.

$ zip -v
...
This is Zip 3.0 (July 5th 2008), by Info-ZIP.
...
ZIP64_SUPPORT

$ unzip a.zip
... start of central directory not found; zipfile corrupt.

$ zip -FF a.zip --out a_fixed.zip
...
zip error: Entry too big to split, read, or write (Poor compression resulted in unexpectedly large entry - try -fz)

$ zip -FFfz a.zip --out a_fixed.zip
$ unzip a.zip

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .