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