Linux: compactando e descompactando arquivos com o tar

(Last Updated On: 16 de novembro de 2017)

No post sobre como compactar arquivos com o zip, vimos como compactar e descompactar nesse formato que é bastante conhecido principalmente em ambientes Windows. Mas se você é usuário Linux, quais tipos de extensão, para arquivos compactados, você costuma lidar? Será que é zip? Provavelmente não. Geralmente, encontramos arquivos com a extensão .tar.gz.

Mas por que .tar.gz? O que isso significa? Quando nos deparamos com arquivos do tipo .tar.gz, significa que dois processos ocorreram. O primeiro é o empacotamento dos arquivos no formato .tar. O segundo processo é a compactação no formato gzip (.gz).

O tar apenas une todos os arquivos em um só. Mas o tar não aplica algoritmos de compactação para que o arquivo resultante fique menor. Para isso utilizamos um outro formato, como o gzip.

A vantagem é que o tar consegue manter as permissões dos arquivos, bem como links diretos e simbólicos, sendo interessante por exemplo para realizar backups.

Utilizamos o comando tar para realizar as compactações. A compactação do diretório Projetos/ ficaria da seguinte forma.

$ tar -czf projetos.tar.gz Projetos/

A primera coisa que você deve ter notado é que, diferente do zip, o comando tar não necessita do -r. Ele age de forma recursiva por padrão. O -c é de create, ou seja, para indicar que desejamos criar um arquivo. O -z indica que queremos compactar com gzip. Utilizamos o -f (file), para que o comando crie o arquivo compactado.

Para descompactar, basta utilizar o -x de extract no lugar do -c.

$ tar -xzf projetos.tar.gz

O comando tar, ao contrário do zip, é silencioso (quiet) por padrão. Se quisermos que ele imprima os detalhes do que está fazendo, basta utilizar o argumento -v (verbose).

Se compararmos os tamanhos do arquivo .zip e do .tar.gz vamos perceber que nesse caso o .tar.gz ficou menor, mas isso não necessariamente irá sempre ocorrer.

comparacao_targz_zip

Finalizamos a série sobre compactação e descompactação de arquivos no Linux. Você pode aprender mais sobre esse e outro assunto nos nossos cursos de cursos de Linux.

Estamos lançando uma série de cursos preparatórios para a certificação Linux Essentials.

FIQUE POR DENTRO

  • rm -r Projetos/ <— WHAT?!

    • Lucas Félix Sampaio

      Oi, Aderbal. Corrigido. Muito obrigado pelo aviso!

Próximo ArtigoFacilitando as requisições utilizando OkHttp no Android