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?

Se o unzip o comando ainda não está instalado no seu sistema e, em seguida, execute:

sudo apt-get install unzip

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

unzip file.zip -d destination_folder

Se os diretórios de origem e destino forem os mesmos, você pode simplesmente fazer:

unzip file.zip

Você pode simplesmente usar unzip.

Instale-o:

apt-get install unzip

E usá-lo:

cd /path/to/fileunzip file.zip

Uma ferramenta mais útil é 7z, que fecha e descompacta uma variedade de formatos de compressão, notavelmente lzma, geralmente o protocolo que oferece as taxas as mais altas da compressã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

Você pode usar:

unzip file.zip -d somedir

para extrair para yourpath/somedir

Se você deseja extrair para um caminho absoluto, use

sudo unzip file.zip -d /somedir

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 mais nada. Basta usar qualquer um dos dois scripts apresentados abaixo para fazer o trabalho. Eles são bastante curtos e podem até ser condensados em um comando de linha única, se quisermos.

Jiboia

#!/usr/bin/env python3import sysfrom zipfile import PyZipFilefor zip_file in sys.argv[1:]:    pzf = PyZipFile(zip_file)    pzf.extractall()

Uso:

./pyunzip.py master.zip 

ou

python3 pyunzip.py master.zip

Perl

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

Uso:

./perlunzip master.zip

ou

perl perlunzip.pl master.zip

Ver

Se os diretórios de origem e destino forem os mesmos, você pode simplesmente fazer:

unzip filename.zip

Eu prefiro bsdtar para unzip/zip. Para extrair, eles são muito semelhantes:

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

No entanto, para fechar, bsdtar Vitoria. Digamos que você tenha essa entrada:

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

e quero isso no arquivo zip:

alfa/four.txtbravo/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 alcançar o acima, a menos que você cd primeiro.

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

Comando: descompacte-[option] zip-path.               - d um diretório opcional para o qual extrair arquivos-l Arquivos de arquivo de Lista.               -P senha Usar senha para descriptografar entradas zipfile criptografadas(se houver).               - t arquivos de arquivo de teste com verificação de redundância cíclica.                 - U atualizar os arquivos existentes.                 - z arquivo comentário

Siga estas instruções: http://www.codebind.com/linux-tutorials/unzip-zip-file-using-terminal-linux-ubuntu-linux-mint-debian/

Instalar descompactar

Então, antes de tudo, precisamos instalar o unzip em nosso sistema se ele não estiver instalado. o comando unzip é usado para extrair arquivos do arquivo aZIP.

Execute o seguinte comando para instalar unzip

sudo apt-get install unzip

unzip Sintaxe

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

Agora siga as etapas abaixo:

Descompacte O Ficheiro

Opção 1 - Se o arquivo Zip estiver no mesmo diretório / pasta em que seu terminal está e quisermos extraí-lo no diretório presentworking.

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 comando following :

sudo ubzip -P zip_file_name.zip

Por favor, certifique-se de usar-P (capital P) não-p porque as opções arediferent.

Opção 2 - Se o arquivo zip não estiver presente no mesmo diretório e quisermos extrair/descompactar o arquivo em um 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 o diretório presentworking.

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

use o comando tar no Linux / Unix

tar é um acrônimo para Tape Archive. o comando tar é usado paramanipula arquivos no Linux / Unix. Os administradores de Sistema usam tarcommand frequentemente para copiar um monte de arquivos ou diretórios para o arquivo highlycompressed que são chamados tarball ou tar, bzip egzip em Linux / Unix sistema.

sintaxe tar

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

Ou

Tar bandeiras necessárias

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

bandeiras opcionais do alcatrão

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]

Exemplo

Criar arquivo tar compactando um diretório ou um único arquivo

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

ripon@ripon:~$  tar -cvf sample_dir.tar sample_dirsample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$ lssample_dir sample_dir.tar

enter image description here

Aqui está o que essas bandeiras (-cvf) realmente significam

-c, --create- criar um novo arquivo

-x, --extract, --get- extrair arquivos de um arquivo

-f, --file ARCHIVE- use arquivo de arquivo ou arquivo de dispositivo

Criar tar.gz ou tgz Arquivo compactando um diretório ou um único arquivo

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

Observe que adicionamos flag-z extra ao comando.Aqui está o que theflag-z realmente significa

-z, --gzip, --gunzip --ungzip- Comprima o arquivo com gzip

ripon@ripon:~$ tar -cvzf sample_dir.tar.gz sample_dirsample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$ lssample_dir sample_dir.tar.gz

enter image description here

O comando abaixo criará um.arquivo tgz. Um isso para notar istar.GZ e tgz são semelhantes.

ripon@ripon:~$ tar -cvzf sample_dir.tgz sample_dirsample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$ lssample_dir sample_dir.tgz

Comprimindo vários diretórios ou arquivos de uma só vez

Digamos, por exemplo, queremos comprimir o sample_dir diretório,o java_test diretório, e o abc.py arquivo para um arquivo tar chamadosample_dir.tar.gz.

Execute o seguinte comando para atingir o objetivo acima.

ripon@ripon:~$ tar -cvzf sample_dir.tar.gz sample_dir java_test abc.pysample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputjava_test/java_test/HelloCV.javaabc.pyripon@ripon:~$ lssample_dir java_test abc.py sample_dir.tar.gz

enter image description here

Criar .bzip2 Arquivo compactando um diretório ou um único arquivo

ripon@ripon:~$ tar -cjvf sample_dir.tar.bz2 sample_dirsample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$ 

Observe que adicionamos bandeira extra -f ao comando.Aqui está o queA bandeira -f significar

-f, --file ARCHIVE- use arquivo de arquivo ou arquivo de dispositivo

enter image description here

Extrair .tar arquivo

Podemos extrair ou desvincular o arquivo compactado usando o comando tar. O comando abaixo extrairá o conteúdo de sample_dir.tar para o diretório presente.

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

enter image description here

O comando a seguir extrairá ou desvinculará arquivos em specifiedDirectory, ou seja, /home/codebind/dir_name neste caso.

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

nós adicionamos bandeira extra -C ao comando.Aqui está o que a bandeira -Csignificar

-C, --directory DIR - alterar Para diretório DIR

enter image description here

Extraia todos os arquivos da pasta atual, você pode usar: descompacte \*.postal

@ burtsevyg a barra invertida não é necessária lá. Ele vai fazer Shell tratar '\ * ’ como símbolo estrela literal. Basta usar ’ descompacte*.zip ‘Para fazer shell expandir’ * ’ para todos os arquivos que terminam em .postal

Usar ’ * ’ sozinho não funcionou para mim. Isso causou erros de nome do arquivo não correspondido. '*'fez o trabalho.

O Ubuntu tem várias ferramentas de compactação/descompactação já instaladas. Execute ‘apropos zip’ no console para a lista completa.

Eu recomendo que você use e aprenda “unar” em vez de um zip específico, a menos que você precise de recursos específicos. "Os formatos de arquivo suportados incluem Zip, Tar-GZip, Tar-BZip2, RAR, 7-zip, LhA, StuffIt e muitos outros formatos antigos e obscuros. ".

Relacionado (para’*.arquivos tgz’): [como descompactar .arquivo tgz usando o terminal?] (command line - How to unzip .tgz file using the terminal? - Ask Ubuntu)