fbpx Certificação Linux: Compactadores de arquivos no Linux [Guia Básico]

Blog

Compactadores de arquivos no Linux [Guia Básico]

📅 01/04/2019 ⏱ 6 min ✍️ Uira Ribeiro
Linuxhow-to
Compactadores de arquivos no Linux [Guia Básico]

Os compactadores de arquivos no Linux são usados no dia a dia dos administradores.

Conheça os comandos tar e compactadores gzip, bgzip e xz para juntar e comprimir arquivos no Linux. Essencial para qualquer administrador.

Comando tar

&list=PL6IznNGWCdD89jP8kiacplFQcJlmMmjhb&index=103

Uso:

$ tar [ctxurgjzpvfNCMF] [destino] [fonte]

O nome deste comando provém de “Tape-ARchive”. Ele lê arquivos e diretórios e salva em fita ou arquivo. Juntamente com os dados, ele salva informações importantes como a última modificação, permissões de acesso e outros. Isso o torna capaz de restaurar o estado original dos dados.

O comando tar recebe dois argumentos. São eles:

[fonte]: Se o tar for utilizado para fazer backup, este parâmetro pode ser um arquivo, um dispositivo, um diretório a ser copiado;

[destino]: Se o comando for utilizado para backup, esta opção irá especificar o destino para os dados. Pode ser um arquivo tarball ou um dispositivo. Se for utilizado para restaurar os arquivos, ela irá especificar um arquivo tarball e um dispositivo de onde os dados serão extraídos.

As opções mais frequentes são:

  • -c: Cria um novo arquivo .tar;
  • -t: Lista o conteúdo de um arquivo .tar;
  • -x: Extrai os arquivos de arquivo .tar;
  • -u: Adiciona mais arquivos ao arquivo .tar somente se estes forem novos ou modificados;
  • -r: Adiciona os arquivos especificados no final do arquivo .tar;
  • -g: Cria um backup incremental;
  • -j: Utiliza o bzip2 para compactar e descompactar os arquivos .tar;
  • -z: Utiliza o gzip para compactar e descompactar os arquivos .tar;
  • -p: Extrai os arquivos com as mesmas permissões de criação;
  • -v: Lista todos os arquivos processados;
  • -f: Indica que o destino é um arquivo em disco, e não uma unidade de fita magnética;
  • -N: data Salva somente os arquivos mais novos que a data especifi­cada;
  • -C: Especifica o local para onde os dados serão extraídos;
  • -M: Habilita múltiplos volumes;
  • -T: Cria um pacote .tar a partir de uma lista de arquivos e diretórios.

Exemplos:

Para salvar um determinado diretório /var/lib/mysql em um no arquivo /var/backup/mysql.tar.gz.

# tar cvzf /var/backup/mysql.tar.gz /var/mysql

Para extrair o mesmo pacote:

# tar xvzf /var/backup/mysql.tar.gz –C /

Para criar um backup do diretório /home/documentos em múltiplos disquetes:

# tar cvMf /dev/fd0 /home/documentos

Para criar um pacote a partir de uma relação de diretórios em um arquivo e com a data superior a 01/05/2004.

# cat listabackup.txt

/etc

/var/lib/mysql

/usr/local/apache2/conf

# tar czPf backup-010504.tar.gz -N 01/05/2004 -T listabackup.txt

Para salvar o diretório /etc em fita SCSI no dispositivo /dev/st0:

# tar cvz /dev/st0 /etc

Para listar o conteúdo de uma fita SCSI no dispositivo /dev/st0:

# tar tfz /dev/st0

Para extrair somente o arquivo de password:

# tar xvfz /dev/st0 etc/passwd

As operações de backup de dados podem ser automatizadas através de scripts shell e programadas no cron, exigindo-se somente do administrador a troca de mídias e conferência dos relatórios.

Os Compressores de Dados

&list=PL6IznNGWCdD89jP8kiacplFQcJlmMmjhb&index=11

Comando gzip e gunzip

Para uma maior eficiência e economia de mídias de backup, existe o recurso de compressão de dados.

O primeiro compressor de dados muito utilizado é o gzip. Ele utiliza um algoritmo de compreensão chamado Lempel-Ziv. Esta técnica encontra caracteres duplicados nos dados de entrada. A segunda ocorrência dos caracteres é substituída por ponteiros para a referência anterior, na for­ma de pares de distância e comprimento. Ao compactar um arquivo, o gzip adiciona o sufixo .gz.

Para compactar um arquivo:

$ gzip arquivo

Para descompactar um arquivo:

$ gzip –d arquivo.gz

Ou

$ gunzip arquivo.gz

Comando bzip2 e bunzip2

O compactador bzip2 compacta arquivos utilizando o algoritmo de Burrows-Wheeler e Huffman. Esta técnica opera em blocos de dados grandes. Quanto maior o tamanho dos blocos, maior a taxa de compressão atingida. Ele é considerado melhor que os compressores convencionais de dados. Ao compactar um arquivo, o bzip2 adiciona o sufixo .bz2.

Para compactar um arquivo:

$ bzip2 arquivo

Para descompactar um arquivo:

$ bzip2 –d arquivo.bz2

Ou

$ bunzip2 arquivo.bz2

Existem alguns casos onde o arquivo compactado pode ficar maior que o arquivo original. Isto pode ocorrer se o algoritmo utilizado não encontrar ocorrências para fazer a compressão dos dados e o cabeçalho do compactador é adicionado ao arquivo original.

Comando xz

Ainda, temos o compressor de dados xz, que utiliza o algoritmo similar ao gzip. Ele produz arquivos com a extensão .xz ou .lzma.

Para compactar um arquivo:

$ xz arquivo

Para descompactar:

$ xz --decompress arquivo.xz

Para você ter uma ideia da diferença entre os três compactadores gzip, bzip2 e xz, veja o exemplo comparativo do pacote TAR de um arquivo de backup de um site:

site.tar                    9,8M       # arquivo sem compactação;

site.tar.gz               2,6M       # arquivo compactado com gzip

site.tar.bz2 2,4M           # arquivo compactado com bzip

site.tar.xz                2,1M       # arquivo compactado com xz

Conclusão

Se você precisa fazer backup de dados no Linux, é imprescindível conhecer os comandos tar, gzip, bzip e xz.

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe

Uira Ribeiro

Prof. Uirá Ribeiro

Chair do Board do Linux Professional Institute

Especialista Linux com mais de 20 anos de experiência.
Autor de 5 livros e mentor de mais de 14.000 alunos certificados.
20 certificações de alto nível, incluindo LPIC-3, CKA, RHCE e AWS Solutions Architect.

WhatsApp