Como zipar arquivos e pastas no Linux: comando zip, compactação e descompactação
4 min4 minutos de leitura
4 min4 minutos de leitura
Autor(a)
lucas.felix
Inscreva-se em nossa Newsletter
Fique por dentro de conteúdos, insights e oportunidades do universo tech. Receba novidades e lançamentos direto no seu e-mail.
Compactar e descompactar diretórios e arquivos é uma tarefa bastante comum no dia a dia. Podemos compactar um diretório para enviar para um amigo ou realizar um backup.
Talvez para alguns usuários, mais comum que a compactação seja a descompactação: no nosso cotidiano podemos baixar arquivos compactados dos mais diversos tipos e, naturalmente precisaremos descompactá-los para que seja possível utilizá-los devidamente.
O objetivo da compactação é unir vários arquivos em um só, fazendo também com que o arquivo final fique menor e seja mais fácil de transferir. Isso é feito através de programas compactadores de arquivos, que utilizam algoritmos para que seja possível reduzir o tamanho dos dados que serão compactados.
Um dos formatos de compactação mais conhecidos é o zip. Você certamente já viu algum arquivo com extensão `.zip` em sua vida.
No Linux, para compactar no formato `.zip` utilizamos o comando `zip`. Tenho um diretório, dentro do diretório do meu usuário (`/home/nome_do_usuario`) que contém alguns projetos, vamos ver o conteúdo desse diretório através do comando `$ ls -l Projetos/`.
Note que utilizei o argumento junto ao para obter uma lista mais detalhada. O "d" no início de cada linha indica que temos dois diretório dentro de ( e ).
Vamos compactar a pasta projetos utilizando o `zip`. Para isso basta passar para o comando o nome do arquivo que irá conter os dados compactados e o que desejamos compactar.
BASH
$ zip projetos.zip Projetos/ adding: Projetos/ (stored 0%)
Nota: Em muitas distribuições Linux o comando `zip` pode não estar instalado por padrão. Se você receber o erro `command not found`, instale-o utilizando: `sudo apt install zip unzip` (Debian/Ubuntu) ou `sudo dnf install zip unzip` (Fedora/RHEL).
Compactamos o diretório `Projetos/` para um arquivo `zip`. E para descompactar? Será que temos que usar `zip -alguma coisa`? Na verdade, para fazermos a descompactação utilizamos um outro comando, o `unzip`.
Mas antes vamos listar os arquivos que estão inclusos no nosso arquivo `.zip`. Para isso basta utilizar o argumento `-l` (list).
Espera aí! Dentro do arquivo `projetos.zip` existe apenas o diretório `Projetos/`. O que houve com os diretórios `GeradorDeJSON` e `GeradorDeXML`?
Acontece que, por padrão, o `zip` não inclui os arquivos e subdiretórios de um diretório, por isso nosso `.zip` contém apenas o diretório `Projetos/` vazio. Para resolver isso é fácil: basta passar o argumento `-r` (recursive).
Agora sim! Os subdiretórios foram incluídos. Perceba que o `zip`, por padrão, informa na saída do terminal todos os diretórios e subdiretórios que estão sendo compactados. O `unzip` funciona da mesma forma na descompactação. Para que isso não ocorra, podemos utilizar o argumento `-q` (quiet).
Vamos primeiro excluir o diretório `Projetos/` para que no momento da descompactação o diretório seja criado novamente.
BASH
$ rm -r Projetos/ $ unzip -q projeto.zip
Pronto! O arquivo foi descompactado e temos a estrutura de diretórios de antes.
Vimos como utilizar o `zip` para compactação e descompactação de arquivos. Em breve um outro post será publicado onde será utilizado o `tar` para realizar a compactação e descompactação.
Cursos de uma série preparatória para a certificação Linux Essentials também estão sendo lançados!