Artigos de Tecnologia e Negócios > Infraestrutura

Linux: compactando e descompactando arquivos com o zip

lucas.felix
lucas.felix

A compactação e descompactação de 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 bastante conhecido é 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 -l junto ao ls para obter uma lista mais detalhada. O "d" no início de cada linha indica que temos dois diretório dentro de Projetos (GeradorDeXML e GeradorDeJSON).

ls_l

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.


$ zip projetos.zip Projetos/ adding: Projetos/ (stored 0%)

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).


$ unzip -l projetos.zip Archive: projetos.zip Length Date Time Name --------- ---------- ----- ---- 0 2016-05-01 15:02 Projetos/ --------- ------- 0 1 file

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).


$ zip -r projeto.zip Projetos/ updating: Projetos/ (stored 0%) updating: Projetos/GeradorDeXML/ (stored 0%) updating: Projetos/GeradorDeXML/GeradorXML.java (deflated 53%) updating: Projetos/GeradorDeJSON/ (stored 0%) updating: Projetos/GeradorDeJSON/GeradorJSON.java (deflated 53%)

Veja só! A saída do zip já foi diferente. Vamos listar o conteúdo do .zip gerado.


$ unzip -l projeto.zip Archive: projeto.zip Length Date Time Name --------- ---------- ----- ---- 0 2016-05-01 18:03 Projetos/ 0 2016-05-01 18:00 Projetos/GeradorDeXML/ 594 2016-04-25 14:08 Projetos/GeradorDeXML/GeradorXML.java 0 2016-05-01 18:00 Projetos/oi.txt 0 2016-05-01 18:00 Projetos/GeradorDeJSON/ 594 2016-04-25 14:08 Projetos/GeradorDeJSON/GeradorJSON.java --------- ------- 1188 6 files

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.


$ 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!

Leia também:

Artigos de Tecnologia e Negócios > Infraestrutura

Cursos profissionais de Infraestrutura é na Alura, comece agora!

  • 1184 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

Premium

  • 1184 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$75
à vista R$900
Matricule-se

Premium Plus

  • 1184 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$100
à vista R$1.200
Matricule-se

Max

  • 1184 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$120
à vista R$1.440
Matricule-se
Procurando planos para empresas?
Acesso por 1 ano
Estude 24h/dia onde e quando quiser
Novos cursos toda semana