Вопрос: Как распаковать zip-файл из терминала?


Просто загрузил ZIP-файл из Интернета. Я хочу использовать терминал для распаковки файла. Каков правильный способ сделать это?


1114
2017-12-11 04:37


Источник


Извлеките все файлы из текущей папки, вы можете использовать: unzip \ *. Zip - burtsevyg
@burtsevyg обратная косая черта там не нужна. Это сделает обработку оболочки \* как символ буквальной звезды. Просто используйте unzip *.zip расширять оболочку * для всех файлов, заканчивающихся .zip - Sergiy Kolodyazhnyy


Ответы:


Если unzip команда еще не установлена ​​в вашей системе, а затем выполните:

sudo apt-get install unzip

После установки утилиты unzip, если вы хотите извлечь ее в определенную папку назначения, вы можете использовать:

unzip file.zip -d destination_folder

1535
2017-12-11 04:44



Если вы уже находитесь в каталоге, который хотите разархивировать, опустите 2-й и 3-й аргументы, т. Е. unzip /path/to/file.zip - Severo Raz
Я только что использовал эту команду. Это пример. Шаг 1 (я перешел в каталог, в котором хранится zip-файл): cd /home/paf/Copy/Programming/Javascript/Json    Шаг 2 (я извлекаю zip-файл в каталог, который я только что упомянул): unzip file.zip -d /home/paf/Copy/Programming/Javascript/Json - pablofiumara
unzip может быть программой по умолчанию. Другими словами, вам может не понадобиться его устанавливать. - noobninja
@Aevi Проверьте страницы руководства [-d exdir] An optional directory to which to extract files. - Zety
Убедитесь, что вы извлекаете в каталог, в отличие от архивов tar, вы можете обнаружить, что многие люди включают десятки файлов в свой корневой каталог своих zip-файлов, это может стать настоящим беспорядком !!! - Steve


Вы можете просто использовать unzip,

Установите его: apt-get install unzip

И используйте его: unzip file.zip


187
2017-12-11 04:41





Более полезным инструментом является 7z, который застегивает и распаковывает ряд форматов сжатия, в частности lzma, обычно протокол, предлагающий самые высокие коэффициенты сжатия.

Эта команда устанавливает 7z:

sudo apt-get install p7zip-full

Эта команда перечисляет содержимое zip:

7z l zipfile.zip

Эта команда извлекает содержимое zip:

7z x zipfile.zip

94
2017-09-14 08:01



7z eне сохраняет структуру каталогов - 7z x делает ... - assylias
13.10 говорит, что 7z не существует. Я думаю, что это должно sudo apt-get install 7zip - nitishch
Я думаю, что команда установки должна быть sudo apt-get install p7zip или sudo apt-get install p7zip-full Вам нужна полная версия, чтобы получить 7z команда. Полностью также является единственным, кто обрабатывает почтовые и другие форматы из двух. - Automatico
не могли бы вы уточнить «Более полезный инструмент»? Вы сравниваете с unzip? Не могли бы вы привести какие-либо примеры функций, которые сделают 7z более полезными, и, возможно, в каких контекстах 7z предпочтителен? - David LeBauer
Для некоторых распаковщик более полезен: прост в использовании и его имя запомнить. - Shy Robbiani


Вы можете использовать:

unzip file.zip -d somedir

извлечь yourpath/somedir

Если вы хотите извлечь абсолютный путь, используйте

sudo unzip file.zip -d /somedir

37
2018-05-28 16:45





Использование скриптовых инструментов: Perl и Python

В многочисленных ответах здесь упоминаются инструменты, требующие установки, но никто не упомянул, что два языка сценариев Ubuntu, Perl и Python, уже поставляются со всеми необходимыми модулями, которые позволяют распаковать zip-архив, что означает, что вам не нужно ничего устанавливать остальное. Просто используйте один из двух сценариев, представленных ниже, чтобы выполнить эту работу. Они довольно короткие и даже могут быть сжаты до команды с одним слоем, если мы этого хотим.

питон

#!/usr/bin/env python3
import sys
from zipfile import PyZipFile
for zip_file in sys.argv[1:]:
    pzf = PyZipFile(zip_file)
    pzf.extractall()

Применение:

./pyunzip master.zip

Perl

#!/usr/bin/env perl
use Archive::Extract;
foreach my $filepath (@ARGV){
    my $archive = Archive::Extract->new( archive => $filepath );
    $archive->extract;
}

Применение:

./perlunzip master.zip

21
2018-06-02 18:43





Если ваш пункт назначения совпадает с исходным zip-файлом, вы можете просто выполнить:

unzip filename.zip

19
2018-03-20 06:28



На Ubuntu 17.04, -d требуется по неизвестной причине. - 林果皞


я предпочитаю bsdtar в unzip/zip, Для извлечения они довольно похожи:

bsdtar -x -f /one/two/three/four.zip -C /five
unzip /one/two/three/four.zip -d /five

Однако для застежки, bsdtar выигрывает. Скажем, у вас есть этот вход:

/one/two/three/alfa/four.txt
/one/two/three/bravo/four.txt

и хотите это в zip-файле:

alfa/four.txt
bravo/four.txt

Это легко с bsdtar:

bsdtar -a -c -f four.zip -C /one/two/three alfa bravo

zip не имеет -d например, разархивировать, так что у вас нет способа достичь вышеуказанного, если вы не cd первый.


13
2017-12-02 01:50





Вот подробное описание вариантов, которые я нахожу полезными:

Command: unzip -[option] zip-path.  
               -l List archive files.  
               -t Test archive files with cyclic redundancy check.  
               -u update the existing files.  
               -z archive comment.  

13
2017-10-14 10:58





Вот команда на случай, если вы хотите извлечь ее из текущего каталога

unzip <source_file_path>.zip 

если вы хотите извлечь в определенную папку назначения, вы можете использовать

unzip <sorce_file_path>.zip -d <destination_path>

если есть пароль, который вы также можете использовать -P

unzip -P <password> <sorce_file_path>.zip 

Если пакет unzip еще не установлен в вашей системе, запустите:

sudo apt-get install unzip

1
2017-11-01 17:54



Такие повторения повторяют уже существующие ответы. - Sergiy Kolodyazhnyy