Compactadores e descompactadores do Linux – Tar, Gzip, Bzip2

E ae galera, estou voltando a colocar os artigos técnicos de meu trabalho também em meu blog. Sei que vai ficar meio bagunçado pela quantidade de assuntos variados, mas minha intenção com este site é tornar um tipo de diário das coisas que estudo, aprendo e gosto. Bom encerrando o blábláblá neste artigo quero demonstrar como podemos usar os compactadores e descompactadores do linux utilizando o shell (modo linha de comando do linux). Este recurso é muito útil para que possamos fazer backups ou fazer downloads dos sites de forma mais rápida, entre outras utilidades.

TAR

O comando tar é utilizado em associação com outras opções já que o tar não compacta os arquivos ou diretórios e sim guarda a estrutura em um único arquivo. Esta ferramenta então não seria um dos compactadores e descompactadores do linux, porém é utilizado juntamento com os comandos que compactam e descompactam. No meu caso, muitas vezes eu utilizo o tar para juntar todos os arquivos e utilizar o SCP ou Win SCP para fazer o download ou upload dos arquivo. Além disto, o tar tem um ótimo recurso para não incluir alguns diretórios ou arquivos que é a opção –exclude. Abaixo vou demonstrar algumas formas de usar o tar.

Paramêtros

-c – cria um novo arquivo tar;
-t – exibe o conteúdo de um arquivo tar;
-p – mantém as permissões originais do(s) arquivo(s);
-r – adiciona arquivos a um arquivo tar existente;
-f – permite especificar o arquivo tar a ser utilizado;
-v – exibe detalhes da operação;
-w – pede confirmação antes de cada ação no comando;
-x – extrai arquivos de um arquivo tar existente;
-z – comprime o arquivo tar resultante com o gzip (visto mais à frente);
-C – especifica o diretório dos arquivos a serem armazenados (note que, neste caso, a letra é maiúscula).

 

Sintaxe

tar [parâmetros] [nome_do_arquivo_tar] [arquivos_de_origem]

 

Exemplos

Para juntarmos todos os arquivos deste diretório por exemplo, podemos fazer isto:

ubuntu@ip-172-31-43-142:/usr/share/nginx/html$ tar -cvf site.tar ./*

 

Para excluirmos algum diretório:

ubuntu@ip-172-31-43-142:/usr/share/nginx/html$ tar -cvf site.tar --exclude='./wp-admin' --exclude='./index.php' ./*
Compactadores e descompactadores do linux - Shell - Tar

Shell Linux – Tar

GZIP

Um dos primeiros compactadores e descompactadores do linux, como dito anteriormente no comando Tar não temos a compactação de arquivos, ele só consegue juntar as estruturas de diretório ou vários arquivos em um único arquivo. Por isso combinamos o tar junto com outro compactador, neste caso com gzip. Se utilizarmos apenas o gzip temos a seguinte sintaxe.

Parametros

-c – extrai um arquivo para a saída padrão;
-d – descompacta um arquivo comprimido;
-l – lista o conteúdo de um arquivo compactado;
-v – exibe detalhes sobre o procedimento;
-r – compacta pastas;
-t testa a integridade de um arquivo compactado.

Sintaxe

gzip [parâmetros] [nome_do_arquivo]

 

Exemplo

ubuntu@ip-172-31-43-142:/usr/share/nginx/html$ gzip index.php

 

TAR e GZIP

Como comentado, uma excelente combinação de comandos é o tar e o gzip. Com o tar podemos juntar vários arquivos ou ter uma grande quantidade de arquivos, e ainda poder compactar com o gzip. Segue sintaxe e exemplo abaixo.
A primeira linha para compactar e a segunda linha para extrair. No caso abaixo estou usando o x para extrair e o parâmetro c para compactar.

Sintaxe

tar -zxvf nome_do_arquivo.tar.gz
tar -zcvf nome_do_arquivo.tar.gz

Exemplo

ubuntu@ip-172-31-43-142:/usr/share/nginx/html$ tar -zcvf site.tar.gz ./*
ubuntu@ip-172-31-43-142:/usr/share/nginx/html$ tar -zxvf site.tar.gz ./*

 

TAR E BZIP2

Eu vejo a maioria dos arquivos compactados utilizando o gzip, porém existe a possibilidade de usarmos o gzip também. Este tipo de compactação é mais lenta porém ela compacta mais que o gzip. Abaixo segue sintaxe e exemplo de como utilizar este comando.

Sintaxe

tar -jxvf nome_do_arquivo.tar.gz
tar -jcvf nome_do_arquivo.tar.gz

Exemplo

ubuntu@ip-172-31-43-142:/usr/share/nginx/html$ tar -jcvf site.tar.gz ./*
ubuntu@ip-172-31-43-142:/usr/share/nginx/html$ tar -jxvf site.tar.gz ./*

Conclusão sobre os compactadores e descompactadores do linux

Concluindo espero que este artigo ajude o máximo que possível. Para qualquer dúvida que eu puder ajudar é só entrar em contato comigo pelo formulário de contato do meu site.