fbpx
Whatsapp (31) 3069-8315
atendimento@certificacaolinux.com.br
Compactadores de arquivos no Linux

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

Comando tar

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

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

Quer saber se uma certificação vale a pena ? Saiba porque os salários são bons, e porque as empresas estão procurando profissionais de Linux.

Você vai ententer que os benefícios superam de longe o sacrifício.

E se você já se decidiu, veja nosso Guia de Certificação.

E se quer saber onde fazer as provas, consulte a lista de cidade.

Se quiser saber o idioma das provas, veja esse post.

Aprenda muito mais sobre Linux em nosso curso online. Você pode fazer a matrícula aqui com trial de 7 dias grátis. Se você já tem uma conta, pode acessar aqui.

Gostou? Compartilhe 🙂

Trabalhando com o tar no linux

Os arquivos tarball são distribuições de software livre que mantêm uma estrutura de diretórios, arquivos fonte, um arquivo Makefile, documentação e outros arquivos, encapsulados em um arquivo tar com compressão de dados gzip.

Este método de distribuição de software é muito popular porque os utilitários tar e gzip são muito comuns.

O resultado é um arquivo com sufixo .tar.gz ou .tgz.

Ainda é possível encontrarmos os arquivos tarball com o sufixo .bz2 e .tbz2. Estes arquivos foram compactados com o bzip2 que utiliza um algoritmo de compressão de dados melhor que o gzip.

Você poderá abrir o conteúdo de um arquivo tarball de duas formas:

# gzip –d arquivo.tar.gz

O comando gzip descomprime o arquivo.tar.gz e retira o sufixo .gz.

# tar xvf arquivo.tar

O utilitário tar extrai o conteúdo do pacote.

Podemos também utilizar formas mais simples:

# tar xvzf arquivo.tar.gz

Ou

# gzip –dc arquivo.tar.gz | tar xv

Se o arquivo for compactado com o bzip2, ele deve ser descompactado pelo bunzip2 ou utilizar a opção –d do bzip2.

# bzip2 –d arquivo.tar.bz2

Ou

# bunzip2 arquivo.tar.bz2

E

# tar xvf arquivo.tar

Veja a comparação entre a compactação realizada pelos compactadores gzip e bzip2 e um arquivo tar sem compactação:

10.772.480  apache.tar 
2.097.339  apache.tar.bz2   (5x menor)
2.467.371  apache.tar.gz    (4x menor)

É importante saber que para o Linux pouco importa o sufixo dos arquivos. Ele verifica início dos arquivos para saber qual é o formato dele e qual programa está associado a este formato.

Portanto, os sufixos .tar.gz, .tgz, .bz2 e .tbz2 são para facilitar o entendimento humano.

Os primeiros bytes dos arquivos são chamados de Magic Numbers, de forma que cada tipo de formato de arquivo tem seus primeiros bytes únicos, que podem ser lidos para identificá-los.

O utilitário file pode ser usado para ler os primeiros bytes dos arquivos e identificar qual o tipo de arquivo.

Exemplos:

# file php-5.3.0.tar.gz

php-5.3.0.tar.gz: gzip compressed data, was “php-5.3.0.tar”, from Unix, last modified: Mon Jun 29 12:46:48 2009, max compression

# file IntegrACAO.zip

IntegrACAO.zip: Zip archive data, at least v2.0 to extract

# file /bin/bash

/bin/bash: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.4, dynamically linked (uses shared libs), stripped

# file meutexto

meutexto: ASCII text

# file player.html

player.html: HTML document text

# file script

script: Bourne-Again shell script text

Aprenda muito mais sobre Linux em nosso curso online. Você pode fazer a matrícula aqui com trial de 7 dias grátis. Se você já tem uma conta, pode acessar aqui.

Gostou? Compartilhe 🙂

Open chat