Questão Como descompactar um arquivo zip do terminal?


Acabei de baixar um arquivo .zip da internet. Eu quero usar o terminal para descompactar o arquivo. Qual é a maneira correta de fazer isso?


1146
2017-12-11 04:37


origem


Extraia todos os arquivos da pasta atual, você pode usar: unzip \ *. Zip - burtsevyg
@burtsevyg a barra invertida não é necessária lá. Isso fará com que a concha seja tratada \* como símbolo de estrela literal. Apenas use unzip *.zip fazer shell expandir * para todos os arquivos terminados em .zip - Sergiy Kolodyazhnyy


Respostas:


Se o unzip O comando não está instalado em seu sistema e executa:

sudo apt-get install unzip

Depois de instalar o utilitário unzip, se você deseja extrair para uma pasta de destino específica, você pode usar:

unzip file.zip -d destination_folder

1577
2017-12-11 04:44



Se você já estiver no diretório em que deseja descompactar o arquivo, omita o segundo e terceiro argumentos, ou seja, unzip /path/to/file.zip - Severo Raz
Acabei de usar este comando. Isto é um exemplo. Passo 1 (mudei para o diretório onde o arquivo zip está armazenado): cd /home/paf/Copy/Programming/Javascript/Json    Passo 2 (eu extraio o arquivo zip no diretório que acabei de mencionar): unzip file.zip -d /home/paf/Copy/Programming/Javascript/Json - pablofiumara
unzip pode ser um programa padrão. Em outras palavras, talvez você não precise instalá-lo. - noobninja
@Aevi Check man pages [-d exdir] An optional directory to which to extract files. - Zety
Certifique-se de extrair para um diretório, ao contrário dos arquivos tar, você pode encontrar muitas pessoas incluindo dezenas de arquivos em seu diretório raiz de seus arquivos zip, isso pode fazer uma verdadeira bagunça !!! - Steve


Você pode simplesmente usar unzip.

Instale-o: apt-get install unzip

E use: unzip file.zip


192
2017-12-11 04:41





Uma ferramenta mais útil é 7z, que fecha e descompacta vários formatos de compactação, especialmente lzma, geralmente o protocolo que oferece as taxas de compressão mais altas.

Este comando instala 7z:

sudo apt-get install p7zip-full

Este comando lista o conteúdo do zip:

7z l zipfile.zip

Este comando extrai o conteúdo do zip:

7z x zipfile.zip

96
2017-09-14 08:01



7z enão mantém a estrutura do diretório - 7z x faz... - assylias
13.10 diz que 7z não existe. Eu acho que deve sudo apt-get install 7zip - nitishch
Eu acho que o comando de instalação deve ser sudo apt-get install p7zip ou sudo apt-get install p7zip-full Você precisa da versão completa para obter o 7z comando. O full também é o único que lida com zip e outros tipos de formatos entre os dois. - Automatico
você poderia esclarecer "Uma ferramenta mais útil"? Você está comparando para descompactar? Você poderia fornecer alguns exemplos de recursos que tornam o 7z mais útil e, talvez, em quais contextos 7z é preferido? - David LeBauer
Para alguns descompactar é mais útil: fácil de usar e seu nome para lembrar. - Shy Robbiani


Você pode usar:

unzip file.zip -d somedir

extrair para yourpath/somedir

Se você quiser extrair para um caminho absoluto, use

sudo unzip file.zip -d /somedir

38
2018-05-28 16:45





Usando ferramentas de script: Perl e Python

Muitas respostas aqui mencionam ferramentas que requerem instalação, mas ninguém mencionou que duas das linguagens de script do Ubuntu, Perl e Python, já vêm com todos os módulos necessários que permitem descompactar um arquivo zip, o que significa que você não precisa instalar nada. outro. Basta usar um dos dois scripts apresentados abaixo para fazer o trabalho. Eles são relativamente curtos e podem até ser condensados ​​em um comando de uma linha se quisermos.

Python

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

Uso:

./pyunzip master.zip

Perl

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

Uso:

./perlunzip master.zip

24
2018-06-02 18:43





Caso seu destino seja o mesmo que o arquivo zip de origem, você pode simplesmente fazer:

unzip filename.zip

20
2018-03-20 06:28



No Ubuntu 17.04, -d requer por motivo desconhecido. - 林果皞


eu prefiro bsdtar para unzip/zip. Para extrair, eles são bem parecidos:

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

No entanto, para fechar, bsdtar vence. Digamos que você tenha esta entrada:

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

e quer isso no arquivo zip:

alfa/four.txt
bravo/four.txt

Isso é fácil com bsdtar:

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

zip não tem o -d opção como descompactar, então você não tem como conseguir o acima, a menos que você cd primeiro.


14
2017-12-02 01:50





Aqui está a descrição detalhada das opções que eu acho úteis:

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





Aqui está o comando caso você queira extrair no diretório atual

unzip <source_file_path>.zip 

se você quiser extrair para uma pasta de destino específica, você pode usar

unzip <sorce_file_path>.zip -d <destination_path>

se houver uma senha, você também pode usar -P

unzip -P <password> <sorce_file_path>.zip 

Se o pacote descompactar já não estiver instalado no seu sistema, execute:

sudo apt-get install unzip

2
2017-11-01 17:54



Esse tipo de repete o que as respostas existentes já disseram. - Sergiy Kolodyazhnyy