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

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

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

 sudo apt-get install unzip 

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

 unzip file.zip -d destination_folder 

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

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

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

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

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

 sudo apt-get install p7zip-full 

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

 7z l zipfile.zip 

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

 7z x zipfile.zip 

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

 unzip file.zip -d somedir 

извлечь в yourpath/somedir

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

 sudo unzip file.zip -d /somedir 

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

 unzip filename.zip 

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

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

Использование скриптовых инструментов: 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 

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

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

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

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

 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 

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

 sudo apt-get install unzip 

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

 sudo unzip file.zip 

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

 sudo ubzip -P file.zip 

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

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

 sudo unzip path/filename.zip -d anotherOrSamePath 

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

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