Como Usar o Comando Zip no Linux para Compactar Arquivos e Pastas

Imagem do Zipper Imagem de Destaque Para Como Usar o Comando Zip do Linux

O comando zip no Linux é provavelmente a maneira mais simples e intuitiva de trabalhar com arquivos ZIP na linha de comando. E não é só isso, o formato de arquivo ZIP é universal – quase todos os sistemas operacionais têm um programa nativo que pode trabalhar com ele. Aqui estão todas as maneiras que você pode usar este comando em qualquer linha de comando do Linux.

Índice

  • Como Instalar o Zip no Linux
  • Comando Zip no Linux: Sintaxe e Opções
  • Como Compactar um Arquivo no Linux Usando o Comando Zip
  • Como Compactar uma Pasta no Linux Usando o Comando Zip
  • Como Descompactar um Arquivo Usando o Comando Zip do Linux
  • Como Descompactar uma Pasta do Linux Com Zip
  • Perguntas Frequentes

Como Instalar o Zip no Linux

A versão mais recente do comando zip do Linux deve estar disponível em todos os principais gerenciadores de pacotes.

Para Debian/Ubuntu:

sudo apt install zip

Para Arch Linux:

sudo pacman -S zip

Para Fedora:

sudo dnf install zip

Para Gentoo

sudo emerge --ask zip

Nota: Antes de instalar qualquer coisa, certifique-se de atualizar seu gerenciador de pacotes primeiro para obter a versão mais recente do comando zip. Você pode aprender como fazer isso e mais com nosso cheatsheet do gerenciador de pacotes do Linux.

Nota: Com o zip instalado, o comando unzip também estará disponível agora.

Comando Zip no Linux: Sintaxe e Opções

Há uma sintaxe básica para o comando zip, e ele leva apenas dois parâmetros: o nome do arquivo ZIP de saída e o nome do arquivo de entrada.

zip [opções]  

Exemplo de Comando Zip no Terminal Linux

As suas posições são importantes aqui. Se você fizer ao contrário, o computador vai se perguntar por que você está tentando fazer um “arquivo-para-arquivar.jpg” com ele a partir de um “arquivo-zip.zip” que não existe e retornará um erro.

Quanto à configuração das opções, você precisará trabalhar com flags. Existem 8 flags que você normalmente precisaria para uso normal:

  • -d excluir entradas arquivadas selecionadas no arquivo ZIP.
  • -q realizar a tarefa silenciosamente sem imprimir nada no terminal.
  • -T testar a integridade do arquivo ZIP.
  • -e criptografar arquivo.
  • -u atualizar o arquivo ZIP adicionando novos arquivos ao arquivo.
  • -m mover arquivo para o arquivo.
  • -r adicionar arquivos recursivamente dentro de uma pasta em um arquivo ZIP.
  • -x excluir arquivos com os nomes de arquivos selecionados.
  • -i incluir apenas arquivos com os nomes selecionados.

Você pode colocar as flags em qualquer lugar que desejar, seja antes da saída, depois da entrada, entre os dois – você pode até usar várias flags espalhadas por toda a linha em qualquer ordem. Apenas certifique-se de digitá-las depois de digitar zip.

A exceção são -x e -i, que precisam de uma nova entrada após usá-las.

Como Compactar um Arquivo no Linux Usando o Comando Zip

A maneira mais fácil de arquivar arquivos com o comando zip é digitar zip seguido pelo nome do arquivo ZIP e, em seguida, o arquivo que você está tentando arquivar ou compactar. As flags são opcionais, então você pode fazer assim para compactar rapidamente qualquer arquivo no Linux.

zip archive.zip text_file.txt

Comando Básico de Zip no Terminal Linux

Você também pode adicionar mais arquivos adicionando os outros após o primeiro arquivo que você estava tentando arquivar. E se algum desses tiver espaços em seus nomes, você pode colocá-los entre aspas.

zip archive.zip "file 1.txt" "file 2.txt" "file 3.txt" "file 4.txt"

Exemplo de Arquivamento de Múltiplos Arquivos em Um Comando Zip no Linux

Usando a Flag -d

A flag -d permite que você exclua um arquivo arquivado dentro do arquivo ZIP da mesma forma que você o teria adicionado a um.

zip -d archive.zip remove_me.jpg

Terminal Linux Usando a Flag D 1

Você também pode usá-la para remover pastas inteiras dentro do arquivo. No entanto, isso não funcionará para arquivos fora do arquivo ZIP (então você não pode usá-la para excluir arquivos após arquivá-los).

Usando a Flag -q

A flag -q serve para garantir que o zip não retorne uma mensagem quando realiza sua tarefa.

zip -q archive.zip text_file.txt

Terminal Linux Usando a Flag Q

É útil quando você está usando o comando zip com um script. Mas se você estiver usando isso sozinho, pode querer evitar usar a flag -q, pois você não saberá se o processo de arquivamento foi bem-sucedido sem verificar com o comando dir ou ls.

Usando a Flag -T

Alguns arquivos Alguns arquivos ZIP podem ficar corrompidos durante o download – isso acontece. Você pode usar a flag -T para verificar a integridade, assim você saberá se realmente é um arquivo quebrado ou se você está apenas inserindo a senha errada.

zip -T archive.zip

Terminal Linux Usando a Grande Flag T

Isso é bastante importante ao baixar arquivos grandes, como imagens de sistemas operacionais. Para arquivos como esses, você pode queimá-los com sucesso em um USB ao vivo e acabar com erros uma vez que você execute o arquivo de imagem em sua máquina. O mesmo vale para vídeos e músicas que têm partes cortadas em lugares aleatórios.

Usando a Flag -u

Se você quiser adicionar um novo arquivo a um arquivo ZIP existente, pode usar a flag -u.

zip -u archive.zip new_file.txt

Terminal Linux Usando a Flag U

Você também pode adicionar mais arquivos adicionando-os após o primeiro arquivo, como se estivesse usando o comando zip normalmente para criar um novo arquivo ZIP.

Usando a Flag -e

Se você quiser adicionar uma senha, precisa usar a flag -e. Esta opção aplica apenas a senha e a criptografia ao arquivo que você adiciona ao arquivo ZIP dentro de seu comando, então arquivos anteriores permanecerão não criptografados se você usar isso com a flag -u.

zip -e archive.zip text_file.txt

Terminal Linux Usando a Flag E Com Terminal Pedindo Senha

A grande coisa sobre arquivos ZIP é que o processo de criação de senha também adiciona uma camada extra de proteção além de fornecer acesso. Sua senha funciona como uma assinatura digital que é usada para descriptografar uma camada extra de criptografia adicionada ao arquivo ZIP.

Usando a Flag -m

Por último, a flag -m exclui o arquivo original após ele ser arquivado no arquivo ZIP. Pense nisso como automatizar um passo extra para que você não precise removê-lo manualmente.

zip -m archive.zip text_file.txt

Terminal Linux Usando a Flag M Com Antes e Depois do Dir Para Mostrar Arquivo Desaparecido

Uma coisa importante a lembrar, no entanto: a flag -m exclui arquivos de tal forma que torna impossível recuperá-los sem usar uma ferramenta de restauração de arquivos. Portanto, certifique-se de manter um backup ou apenas remova as coisas manualmente usando o comando rm em vez disso.

Como Compactar uma Pasta no Linux Usando o Comando Zip

Se você usar o comando zip em uma pasta bruta, você ficará com uma pasta que não contém nenhum arquivo. Sempre que você estiver tentando compactar uma pasta, precisa usar a flag -r.

Usando a Flag -r

A flag -r, também conhecida como recursiva, percorre cada conteúdo de uma pasta e suas subpastas e arquiva cada um deles no arquivo ZIP. Ela também manterá a estrutura atual de cada subpasta.

zip -r archive.zip my_folder

Terminal Linux Usando a Flag R

Isso também funciona se você quiser arquivar tudo dentro da pasta atual. Basta substituir my_folder por ./ e mudará seu alvo para tudo dentro da atual.

zip -r archive.zip ./

Usando o Comando Unzip do Linux Com a Flag R em Todos os Arquivos Dentro da Pasta Atual

Além disso, você pode usar isso junto com a flag -u para incluir pastas e seus conteúdos em um arquivo ZIP existente.

zip -r -u archive.zip another_folder

Terminal Linux Usando a Flag R Com a Flag U

Usando a Flag -i

A flag -i permite que você escolha um arquivo específico que deseja incluir e exclui tudo o mais dentro de uma pasta.

zip -r archive.zip my_folder -i my_folder/a_subfolder/file1.txt

Terminal Linux Usando a Flag I

Usando * asteriscos com a flag -i, você pode selecionar arquivos que compartilham nomes semelhantes, mas podem terminar com algo como um número. Por exemplo, digitando *.txt fará com que o comando zip inclua todos os arquivos TXT dentro da pasta.

zip -r archive.zip my_folder -i "*.txt"

Terminal Linux Usando a Flag I Com Asterisco

Usando a Flag -x

A flag -x permite que você exclua apenas certos arquivos enquanto compacta uma pasta inteira.

zip -r archive.zip my_folder -x my_folder/dont_zip.jpg

Terminal Linux Usando a Flag X

Além disso, a flag -x substitui a flag -i quando usadas juntas. Dessa forma, você pode, por exemplo, dizer ao zip para incluir todos os outros arquivos do mesmo tipo, exceto pelo arquivo que você não deseja que ele compacte.

zip -r archive.zip my_folder -i "*.txt" -x my_folder/dont_zip.txt

Terminal Linux Usando a Flag X E a Flag I Juntas

Como Descompactar um Arquivo Usando o Comando Zip do Linux

O programa unzip é um programa parceiro do programa zip padrão. Ele extrai arquivos do seu arquivo ZIP.

Para usar este programa, você só precisa digitar unzip e o nome do arquivo do arquivo ZIP.

unzip archive.zip

Comando Básico de Unzip no Linux

Usando o comando unzip, você descompactará o arquivo ZIP dentro do diretório de trabalho atual, independentemente de onde o arquivo ZIP veio.

Para extrair ou descompactar um arquivo Linux dentro de um arquivo ZIP para que os outros permaneçam não extraídos, você pode adicionar seu nome de arquivo após a parte onde você digita o arquivo.

unzip archive.zip file.txt

Descompactação Seletiva do Arquivo Txt

Como Descompactar uma Pasta do Linux Com Zip

Embora o unzip normalmente extraia pastas localizadas dentro de um arquivo ZIP, pode ser bastante difícil fazê-lo extrair apenas certas pastas. Mas isso não significa que seja impossível.

unzip archive.zip my_folder/a_subfolder/*

Descompactação Seletiva do Conteúdo de Uma Única Pasta

Essa linha de código extrai tudo dentro de a_subfolder.

Além disso, quando você descompacta uma pasta, o programa unzip cria uma nova pasta dentro do diretório de trabalho atual e desempacota suas pastas lá. Se uma pasta existir com o mesmo nome (ou uma versão anterior da pasta estiver presente), ele pergunta se está tudo bem em substituir o arquivo que está atualmente na pasta.

Perguntas Frequentes

O que faz o comando gzip no Linux?

O comando gzip do Linux é uma ferramenta que você pode usar para armazenar e compactar arquivos em um arquivo GZ.

O ZIP é melhor que o TAR?

De certa forma, o ZIP é melhor que o TAR porque arquivos ZIP podem compactar, criptografar e proteger seu conteúdo. No entanto, arquivos TAR são destinados a combinar arquivos em um único arquivo para transferência de arquivos mais rápida, enquanto arquivos ZIP (apesar de serem usados para o mesmo propósito) vêm com esses recursos extras em mente.

O TAR é mais rápido que o ZIP?

Arquivos TAR não compactam nem criptografam seu conteúdo. Portanto, se você está procurando uma maneira mais rápida de combinar uma grande quantidade de arquivos em um único arquivo fácil de transferir, você verá alguns ganhos com TAR em comparação com ZIP. No entanto, você pode achar mais fácil transferir um arquivo ZIP em vez de um arquivo TAR, porque arquivos ZIP tendem a ser muito menores que arquivos TAR.

Crédito da imagem: Unsplash, Capturas de tela por Terenz Jomar Dela Cruz