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

Щелкните правой кнопкой мыши файл и перейдите к свойствам => разрешения выберите «разрешить выполнение файла в виде программы»

теперь дважды щелкните файл, который я должен запустить, если он еще не был

открыт вашей домашней папке и перейдите в edit => preferences =>, и там в разделе «Исполняемые текстовые файлы» выберите «спросить каждый раз»

1
задан 13 October 2017 в 19:29

9 ответов

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

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

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

182
ответ дан 25 May 2018 в 16:02

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

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

sudo apt-get install p7zip-full

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

7z l zipfile.zip

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

7z x zipfile.zip
89
ответ дан 25 May 2018 в 16:02
  • 1
    7z e не сохраняет структуру каталогов - 7z x делает ... – assylias 23 October 2013 в 17:59
  • 2
    13.10 говорит, что 7z не существует. Я думаю, что это должно sudo apt-get install 7zip – nitishch 27 October 2013 в 00:04
  • 3
    Я думаю, что команда установки должна быть sudo apt-get install p7zip или sudo apt-get install p7zip-full. Вам нужна полная версия, чтобы получить команду 7z. Полностью также является единственным, кто обрабатывает почтовые и другие форматы из двух. – Automatico 31 October 2013 в 02:15
  • 4
    не могли бы вы уточнить «Более полезный инструмент»? Вы сравниваете с unzip? Не могли бы вы привести какие-либо примеры функций, которые сделают 7z более полезными, и, возможно, в каких контекстах 7z предпочтителен? – David LeBauer 30 September 2015 в 01:17
  • 5
    Для некоторых распаковщик более полезен: прост в использовании и его имя запомнить. – Shy Robbiani 20 January 2016 в 11:25

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

unzip file.zip -d somedir

для извлечения в yourpath/somedir

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

sudo unzip file.zip -d /somedir
35
ответ дан 25 May 2018 в 16:02

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

unzip filename.zip
18
ответ дан 25 May 2018 в 16:02
  • 1
    На Ubuntu 17.04, -d требуется по неизвестной причине. – 林果皞 4 May 2017 в 10:14

Использование инструментов сценариев: 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
18
ответ дан 25 May 2018 в 16:02

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

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

Однако для zipping выигрывает 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
ответ дан 25 May 2018 в 16:02

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

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
ответ дан 25 May 2018 в 16:02

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

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
ответ дан 25 May 2018 в 16:02
  • 1
    Такие повторения повторяют уже существующие ответы. – Sergiy Kolodyazhnyy 1 November 2017 в 21:58

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

sudo apt-get install unzip

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

sudo unzip file.zip

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

sudo unzip -P file.zip

ans убедитесь, что он -P не -p отличается от

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

sudo unzip path/filename.zip -d anotherOrSamePath

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

И если есть пароль, вы также можете использовать [ f9].

0
ответ дан 25 May 2018 в 16:02
  • 1
    Пожалуйста, не публикуйте скриншоты из текста. Скопируйте текст и примените форматирование кода. – muru 28 August 2017 в 10:00
  • 2
    обратите внимание, что вам не нужно использовать sudo использовать его только при необходимости, я использовал его, потому что файл создан sudo, поэтому я не смог бы отредактировать его без sudo – Mahmoud S. Marwad 28 August 2017 в 10:00
  • 3
    @muru это от терминала, поэтому, если бы я скопировал его, что будет бессмысленным, я думаю. – Mahmoud S. Marwad 28 August 2017 в 10:02
  • 4
    почему это было бы бессмысленно? Какое особое значение он получает от картины? – muru 28 August 2017 в 10:03
  • 5
    показывая, что это терминал, и что это результат. – Mahmoud S. Marwad 28 August 2017 в 10:05

Другие вопросы по тегам:

Похожие вопросы: