Comando zip e unzip no linux: 10 Exemplos Essenciais

Compartilhe:

Tela do monitor de um computador mostrando a execução dos comandos zip e unzip no linux

Existem vários formatos de compressão nativos utilizados no linux e comandos para compactar e descompactar arquivos nesses formatos, e mesmo assim muitas pessoas que usam linux recebem arquivos no formato ZIP.

Se você chegou aqui é por que deve ser uma das pessoas que precisa descompactar arquivos ZIP no linux e está com dificuldade.

Para ajuda-lo(a) a fazer tal tarefa esse tutorial ensina como utilizar o comando zip e unzip no linux com 10 exemplos práticos para auxiliar a criar e extrair arquivos ZIP no linux.

Como instalar o comando zip e unzip no linux ?

Para instalar o comando zip e unzip nas distribuições linux Debian e Ubuntu use o gerenciador de pacotes apt, execute os comandos seguir autenticado com usuário root(administrador):

Nas distribuições linux Fedora, Red hat Enterprise Linux ou em distros baseadas execute os comandos a seguir com o usuário root:

Precisa aprender mais sobre os comandos apt e dnf ? Então leia nosso guia para iniciantes.

Agora que os comandos foram instalados no sistema é hora de ir pra prática.

Comando zip

O comando zip é usado para compactar um ou mais arquivos no formato de compressão chamado de zip. Na prática, ele cria uma cópia do arquivo e armazena no arquivo ZIP, e em seguida compacta o conteúdo do arquivo ZIP.

A sintaxe do comando é:

Explicação:

  • zip: é o comando.
  • options: são as opções que podem ser usadas.
  • zipfile: refere-se ao nome do arquivo .zip.
  • list_files: refere-se a lista de arquivos que será compactado.

1. Compactar um único arquivo

Para compactar um único arquivo no formato ZIP, execute o comando zip seguido do nome do arquivo ZIP(fica a seu critério o nome que vai ser dado), seguido da localização do arquivo que será compactado:

O Resultado é que a cópia do arquivo compactada foi reduzida em 58% do seu tamanho original.

2. Compactar múltiplos arquivos

Precisa zipar(compactar) dois ou mais arquivos ? Então inclua a lista de arquivos que serão compactados após o nome do arquivo “.zip”.

No exemplo a seguir será feita uma cópia dos arquivos /etc/hosts, /etc/passwd e /etc/group, e as cópias serão compactadas no arquivo etc-files.zip:

Para ZIPAR cada arquivo do diretório, com exceção dos ocultos use caractere “*” asterisco após o diretório para indicar o nome de todos os arquivos.

Também inclua a opção -y ou --symlinks para copiar os links simbólicos, sem copiar o conteúdo dos arquivos de destino de cada link:

3. Listando conteúdo do arquivo ZIP

É importante listar o conteúdo do arquivo “.zip” para saber se os arquivos compactados estão dentro mesmo.

Para listar o conteúdo do arquivo use a opção -sf ou --show-files do comando zip. Por exemplo, para visualizar o conteúdo do arquivo etc-files.zip, execute o comando:

4. Excluir arquivos específicos da compactação

Para compactar todos os arquivos de um diretório, excluindo alguns arquivos da compressão utilize a opção -x ou --exclude.

Exemplo, compactar os arquivos de /boot, excluindo os arquivos que iniciam com a palavra memtest:

Veja na imagem a seguir, que ao listar o conteúdo do arquivo boot-sistema2.zip, os arquivos que iniciam com a palavra memtest não estão inclusos no arquivo.

5. Compactar arquivos sem armazenar o caminho completo

Por padrão, quando um arquivo ZIP é criado no linux, o comando zip remove a “/” (barra) do inicio e armazena o restante da localização para cada arquivo compactado.

Portanto, para compactar os arquivos sem armazenar a informação do caminho completo utilize a opção -j ou --junk-paths.

Por exemplo, para compactar os arquivos com extensão “.log” (logs do sistema) de /var/log, sem armazenar o caminho completo, execute o comando:

Veja na imagem que a informação do caminho completo foi removido de cada arquivo adicionado ao arquivo logs.system.zip.

6. Compactar pasta no Linux

Por padrão, o comando zip apenas irá compactar arquivos. se você tentar compactar o diretório, vai ter o resultado como o mostrado no código destacado na cor vermelho abaixo:

Como pode vê, o conteúdo armazenado é 0%(mas acredite tem conteúdo lá dentro de /boot/grub). Então, como comprimir um diretório e tudo que tem dentro ?

Use a opção -r ou --recurse-paths para compactar a pasta e toda sua estrutura (subdiretórios e arquivos) recursivamente.

No exemplo a seguir será usada também a opção --symlinks para evitar duplicidade de conteúdo de arquivos e a opção --recurse-paths para copiar recursivamente o conteúdo de /boot para dentro de tudo-do-boot.zip:

7. Criar arquivo ZIP no linux com senha

Você pode ZIPAR arquivos e protege-los com senha usando a opção -e ou --encrypt do comando zip.

Para esse exemplo vou comprimir os arquivos /etc/shadow e /etc/gshadow com o comando zip:

Ao executar o comando será solicitada a senha duas vezes e em seguida será feita a cópia dos arquivos para dentro do arquivo ZIP e o mesmo será criptografado.

Para extrair o conteúdo do arquivo “.zip” use o comando unzip que será ensinado ainda.

8. Adicionar novos arquivos ao arquivo ZIP existente

Precisa adicionar novos arquivos a um arquivo ZIP existente ? Então use a opção -g ou --grow do comando zip.

Para exemplificar, será adicionado o arquivo /etc/protocols ao arquivo etc-files.zip usando opção -g ou --grow do comando zip:

Veja na imagem acima que o arquivo /etc/protocols foi adicionado ao arquivo etc-files.zip.

9. Remover arquivo de dentro do arquivo ZIP existente

É Possível também excluir arquivos que estão dentro do arquivo ZIP que já existe usando a opção -d ou --delete.

Para remover o arquivo /etc/passwd de dentro do arquivo etc-files.zip, o comando completo é:

Se atente a localização do arquivo que quer remover, inclua sempre a caminho completo do arquivo que será removido de dentro do arquivo ZIP.

Quer aprender mais sobre o comando zip ? Recomendo a leitura do seu manual:

Comando unzip

O comando unzip é usado para listar, testar ou extrair arquivos de um arquivo ZIP. A sintaxe para testar e listar o conteúdo de um arquivo ZIP é:

A sintaxe para extrair arquivos ZIP é:

A opção -x é opcional, ela é usada para excluir da extração uma lista de arquivos que estão dentro do arquivo ZIP.

A opção -d é também opcional, é usada para informar para onde os arquivos serão extraídos.

10. Descompactar arquivo ZIP no linux

Antes de extrair o conteúdo de um arquivo ZIP é recomendado testar usando a opção -t do comando unzip.

A opção -t extrai cada arquivo especificado na memória e compara o CRC (soma de verificação aprimorada) do arquivo expandido com o valor CRC armazenado do arquivo original.

Para testar um arquivo, execute o seguinte comando substituindo o nome do arquivo (etc-files.zip) pela localização do arquivo que irá testar.

Agora que os arquivos dentro do arquivo ZIP foram testados, execute o comando para descompactar o arquivo ZIP, a sintaxe é unzip seguido da localização do arquivo:

Ao extrair o conteúdo do arquivo ZIP o comportamento padrão é salvar no diretório corrente.

Para descompactar o conteúdo do arquivo para seu local de origem que é /etc utilize a opção -d do comando unzip para indicar a localização de destino, ou seja, onde vai ser extraído o conteúdo do arquivo ZIP.

No exemplo será extraído para o diretório / (raiz), já que o diretório boot é um subdiretório de /:

Caso os arquivos já existam no destino, o comando unzip vai perguntar se deseja substituir o arquivos de destino pelo arquivo que está dentro do arquivo ZIP, abrindo um prompt com as seguintes opções: [y]es, [n]o, [A]ll, [N]one, [r]ename

Para responder “yes” para todas as perguntas, digite “A” de “All” e substituir todos os arquivos de destino pelos arquivos extraídos que tem o mesmo nome.

Para descompactar um arquivo ZIP criptografado protegido por senha, usamos somente o comando unzip seguido da localização do arquivo ZIP:

Ao executar o comando será solicitado a senha, informe a senha correta e os arquivos serão extraídos.

Quer aprender mais sobre o comando unzip ? Recomendo a leitura do seu manual:

Considerações finais

É importante mencionar que alguns arquivos já são compactados, por isso nem todos os tipos de arquivos vão ter seu tamanho reduzido ou muito reduzido.

Os exemplos do tutorial com certeza vai ajudar quem está precisando criar e descompactar arquivos zip no linux.

Se o conhecimento apresentado foi útil ou tem dúvidas ou sugestões comente.

Navegue por tópicos:

Foto de Edson Oliveira
Edson Oliveira

Especialista em Linux, trabalhando com TI tem experiência no gerenciamento, solução de problemas e suporte de servidores linux em ambientes corporativos.

Professor de cursos voltados a linux, tecnologias open source e certificações LPI. Possui as certificações LPIC-1, LPIC-2 e LPIC-3 (Mixed Environment).

Navegue por tópicos:

Você também pode gostar:

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Valorizamos sua privacidade

Utilizamos cookies para aprimorar sua experiência de navegação, exibir anúncios ou conteúdo personalizado e analisar nosso tráfego. Ao clicar no botão “Aceitar todos”, você concorda com nosso uso de cookies.

Para mais informações leia nossa Política de Privacidade.