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

1014

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

    
задан ubuntu-nerd 11.12.2011 в 05:37
источник

10 ответов

1378

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

sudo apt-get install unzip

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

unzip file.zip -d destination_folder
    
ответ дан Kelley 11.12.2011 в 05:44
источник
179

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

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

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

    
ответ дан Panther 11.12.2011 в 05:41
81

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

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

sudo apt-get install p7zip-full

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

7z l zipfile.zip

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

7z x zipfile.zip
    
ответ дан Chris 14.09.2013 в 10:01
34

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

unzip file.zip -d somedir

, чтобы извлечь файл yourpath/somedir

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

sudo unzip file.zip -d /somedir
    
ответ дан cristobalhdez 28.05.2013 в 18:45
17

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

unzip filename.zip
    
ответ дан Nadeem Khan 20.03.2014 в 07:28
13

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

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

Python

#!/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
    
ответ дан Sergiy Kolodyazhnyy 02.06.2017 в 20:43
12

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

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.  
    
ответ дан kashminder 14.10.2014 в 12:58
11

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

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

Однако для zip выигрывает 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 .

    
ответ дан Steven Penny 02.12.2016 в 02:50
1

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

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
    
ответ дан Soumik Debnath 01.11.2017 в 18:54
0

Прежде всего вам нужно установить unzip , если он не установлен.

sudo apt-get install unzip

1 - Если файл находится в том же каталоге, в котором находится терминал, и вы хотите извлечь его в том же месте.

sudo unzip file.zip

, если файл защищен паролем:

sudo unzip -P file.zip

ans убедитесь, что это -P not -p , это другая опция

2 - Если файл не находится в одном каталоге, и вы хотите извлечь его в другом каталоге, это терминал. используйте:

sudo unzip path/filename.zip -d anotherOrSamePath

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

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

    
ответ дан Mahmoud S. Marwad 28.08.2017 в 08:55