Como descompactar um arquivo zip do Terminal?

1186

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

    
por ubuntu-nerd 11.12.2011 / 05:37

9 respostas

1631

Se o comando unzip ainda não estiver instalado no seu sistema, execute:

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
    
por Kelley 11.12.2011 / 05:44
196

Você pode simplesmente usar unzip .

Instale:

apt-get install unzip

E use:

unzip file.zip
    
por Panther 11.12.2011 / 05:41
99

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

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
    
por Chris 14.09.2013 / 10:01
39

Você pode usar:

unzip file.zip -d somedir

para extrair para yourpath/somedir

Se você quiser extrair para um caminho absoluto, use

sudo unzip file.zip -d /somedir
    
por cristobalhdez 28.05.2013 / 18:45
28

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 para instalar qualquer outra coisa. 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

Veja também o script para extrair arquivos tar.gz .

    
por Sergiy Kolodyazhnyy 02.06.2017 / 20:43
23

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

unzip filename.zip
    
por Nadeem Khan 20.03.2014 / 07:28
17

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

Command: unzip -[option] zip-path.
               -d an optional directory to which to extract files  
               -l List archive files.
               -P password Use password to decrypt encrypted zipfile entries (if any).
               -t Test archive files with cyclic redundancy check.  
               -u Update the existing files.  
               -z archive comment
    
por kashminder 14.10.2014 / 12:58
16

Eu prefiro bsdtar to unzip / zip . Para extração, 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 compactação, bsdtar ganha. Digamos que você tenha essa entrada:

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

e deseja 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
O

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

    
por Steven Penny 02.12.2016 / 02:50
4

Instale o unzip

Primeiramente, precisamos instalar o descompactar em nosso sistema, se ele não estiver instalado. O comando unzip é usado para extrair arquivos de um arquivo ZIP.

Execute o seguinte comando para instalar o unzip

sudo apt-get install unzip

unzip Syntex

$ unzip [-aCcfjLlnopqtuvy] [-d dir] zipfile

Agora siga os passos abaixo:

Descompactar arquivo

OPÇÃO 1 - Se o arquivo Zip estiver no mesmo diretório / pasta em que seu terminal está e queremos extraí-lo no diretório de trabalho atual.

Use o seguinte comando para alcançar o cenário descrito acima

sudo unzip zip_file_name.zip

se o arquivo zip estiver protegido com alguma senha, use o seguinte comando:

sudo ubzip -P zip_file_name.zip

Por favor, certifique-se de usar -P (maiúscula P) não -p porque são opções diferentes.

OPÇÃO 2 - Se o arquivo zip não estiver presente no mesmo diretório e quisermos extrair / descompactar o arquivo no diretório diferente.

Use o seguinte comando para alcançar o cenário descrito acima

sudo unzip path/filename.zip -d another_path_or_same_path

se não usarmos a opção -d, o arquivo será extraído para apresentar o diretório de trabalho.

E se o arquivo zip for protegido por senha, também poderemos usar -P .

use o comando tar no Linux / Unix

tar é um acrônimo para o Arquivo de fitas. O comando tar é usado para manipular arquivos no Linux / Unix. Os administradores do sistema usam o comando tar com frequência para copiar vários arquivos ou diretórios para um arquivo altamente compactado chamado tarball ou tar , bzip e gzip no sistema Linux / Unix .

tar Syntex

tar [OPTION...] [FILE]...

Ou

tar necessário sinalizadores

tar {-r|-t|-c|-x|-u}

Flags opcionais

tar {one of the required Flags} [ -d ][-B] [ -F ] [ -E ] [ -i ] [-h ] [ -l ] [ -m ] [ -o ] [ -p ] [ -w] [ -s ] [ -U ] [ -v ]
[-Number] [-b Blocks] [-f Archive]

Exemplos

Crie um Arquivo TAR bloqueando um diretório ou um único arquivo

O comando do terminal abaixo criará um arquivo .tar chamado sample_dir.tar com um diretório /home/codebind/sample_dir ou sample_dir no diretório de trabalho atual.

ripon@ripon:~$  tar -cvf sample_dir.tar sample_dir
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ ls
sample_dir sample_dir.tar

Vejaoqueessessinalizadores(-cvf)realmentesignificam

-c,--create-crieumnovoarquivo

-x,--extract,--get-extraiarquivosdeumarquivo

-f,--fileARCHIVE-useoarquivoarchiveouodispositivoARCHIVE

Crietar.gzoutgzArquivoporcompactarumdiretórioouumúnicoarquivo

Ocomandodoterminalabaixocriaráumarquivo.tar.gzchamadosample_dir.tar.gzcomumdiretório/home/codebind/sample_dirousample_dirnodiretóriodetrabalhoatual.

Observequeadicionamossinalizadorextra-zaocomando.Aqui,oqueasinalização-zrealmentesignifica

-z,--gzip,--gunzip--ungzip-Compacteoarquivocomogzip

ripon@ripon:~$tar-cvzfsample_dir.tar.gzsample_dirsample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$lssample_dirsample_dir.tar.gz

Ocomandoabaixocriaráumarquivo.tgz.Umacoisaanotaréquetar.gzetgzsãosimilares.

ripon@ripon:~$tar-cvzfsample_dir.tgzsample_dirsample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$lssample_dirsample_dir.tgz

Compactandováriosdiretóriosouarquivosdeumavez

Digamos,Porexemplo,queremoscompactarodiretóriosample_dir,odiretóriojava_testeoarquivoabc.pyparaumarquivotarchamadosample_dir.tar.gz.

Executeoseguintecomandoparaatingiroobjetivoacima.

ripon@ripon:~$tar-cvzfsample_dir.tar.gzsample_dirjava_testabc.pysample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputjava_test/java_test/HelloCV.javaabc.pyripon@ripon:~$lssample_dirjava_testabc.pysample_dir.tar.gz

Crie.bzip2doarquivomortocompactandoumdiretórioouumúnicoarquivo

ripon@ripon:~$tar-cjvfsample_dir.tar.bz2sample_dirsample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$

Observequeadicionamossinalizadorextra-faocomando.Aqui,oqueasinalização-frealmentesignifica

-f,--fileARCHIVE-useoarquivoarchiveouodispositivoARCHIVE

Extraiaoarquivodedados.tar

Podemosextrairoudescompactaroarquivocompactadousandoocomandotar.Ocomandoabaixoiráextrairoconteúdodesample_dir.tarparaodiretórioatual.

ripon@ripon:~$tar-xvfsample_dir.tarsample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$

Ocomandoaseguiriráextrairoudescompactararquivosnodiretórioespecificado,porexemplo,/home/codebind/dir_name,nestecaso.

ripon@ripon:~$tar-xvfsample_dir.tar-C/home/codebind/dir_namesample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$

adicionamossinalizadorextra-Caocomando.Aqui,oqueasinalização-Crealmentesignifica

-C,--directoryDIR-mudeparaodiretórioDIR

    
por M.A.K. Ripon 16.10.2018 / 06:44
1

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
    
por Soumik Debnath 01.11.2017 / 18:54
0

Primeiro de tudo você precisa instalar o unzip se ele não estiver instalado.

sudo apt-get install unzip

1 - Se o arquivo estiver no mesmo diretório que o terminal e você quiser extraí-lo no mesmo local.

sudo unzip file.zip

se o arquivo estiver protegido por senha:

sudo unzip -P file.zip

e certifique-se de que é -P não -p é uma opção diferente

2 - Se o arquivo não estiver no mesmo diretório e você quiser extraí-lo no diretório diferente, o terminal está. use:

sudo unzip path/filename.zip -d anotherOrSamePath

se você não usou -d , o arquivo será extraído para o local em que o terminal está ativo.

E se houver uma senha, você também poderá usar -P .

    
por Mahmoud S. Marwad 28.08.2017 / 08:55