Linux Mint 12 - как открыть файл.zip в терминале

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

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

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 ответа

Прежде всего, файл, который вы указали в своем сообщении, не является файлом.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

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

Этот вопрос касается восстановления поврежденного 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

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

У меня была такая же проблема с очень большим 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/.

Возможно, это не по теме, хотя поверх ответа Грэма, используя -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
Другие вопросы по тегам