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


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


1146
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

1577
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


192
2017-12-11 04:41





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

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

sudo apt-get install p7zip-full

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

7z l zipfile.zip

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

7z x zipfile.zip

96
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

38
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

24
2018-06-02 18:43





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

unzip filename.zip

20
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 первый.


14
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.  

14
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

2
2017-11-01 17:54



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


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

sudo apt-get install unzip

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

sudo unzip file.zip

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

sudo unzip -P file.zip

и убедитесь, что это -P не -p это другой вариант

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

sudo unzip path/filename.zip -d anotherOrSamePath

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

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


0
2017-08-28 06:55



Пожалуйста, не публикуйте скриншоты из текста. Скопируйте текст и примените форматирование кода. - muru
обратите внимание, что вам не нужно использовать sudo используйте его только при необходимости, я использовал его, потому что файл создается sudo поэтому я не смог бы отредактировать его без sudo - Mahmoud S. Marwad
@muru это от терминала, поэтому, если бы я скопировал его, что будет бессмысленным, я думаю. - Mahmoud S. Marwad
почему это было бы бессмысленно? Какое особое значение он получает от картины? - muru
показывая, что это терминал, и что это результат. - Mahmoud S. Marwad