Você está na página 1de 4

16/09/2020 Empacotadores – Nix

Nix

De tudo um pouco: experiências de viagens, foos, fotos,


letras de música, linux e outros assuntos…

Empacotadores

06/06/2009 Nix
Nesse post, vou falar sobre empacotador. Empacotar, aqui, nada mais é do que reunir vários arquivos
dentro de outro, que é chamado de pacote. O principal programa utilizado para empacotar, é o tar –
Tape ARchive.

O tar, diferente dos compactadores, não realiza a compressão dos arquivos que está empacotando;
portanto, o tamanho final de um pacote tar, é mais ou menos a soma dos arquivos que estão sendo
empacotados.

Geralmente, o tar é utilizado para fazer backup de arquivos e diretórios, muito diferente do gzip e do
bzip2 que fazem compressão somente de arquivos. E a boa notícia é que, podemos usar somente o tar
pra empacotar, ou então se quisermos comprimir podemos usar o tar com algum dos compactadores
que comentei no post passado!

Prá começar, vou mostrar o tar sendo somente o empacotador. Imagine que vamos mexer em alguns
arquivos de configuração dentro do /etc e queremos fazer um backup do diretório inteiro, antes de
começarmos a mexer nos arquivos. Vamos criar um diretório chamado backup dentro do /root prá
guardar nossos backups lá:

# mkdir /root/backup

Agora, vamos fazer o backup:

# tar cvf /root/bkp_etc.tar /etc

Onde:

c – vem de create, é a opção usada para criar o backup.


v – é o verbose, mostra os detalhes do que está fazendo quando está criando o pacote
f – é file, indica o nome do arquivo. Essa opção sempre vem por último, pois é ela quem define o nome do
arquivo!

Uma coisa que é importante falar, para criar um pacote tar, seja comprimido ou não… tem que seguir
uma ordem! Se vocês observarem, depois das opções do tar, eu coloquei o caminho onde meu pacote
será salvo e o nome que ele terá… e só depois, eu indiquei qual diretório vai ser empacotado!

https://ivanix.wordpress.com/2009/06/06/empacotadores/ 1/4
16/09/2020 Empacotadores – Nix

Agora vamos comparar o tamanho do diretório /etc com o pacote que geramos:

# du -hs /etc/
2,4M /etc/

# du -hs bkp_etc.tar
1,4M bkp_etc.tar

Vejam que o tamanho entre o diretório é diferente… e vocês podem me dizer: “mas Nix, você não
disse lá em cima que o tar não comprime, só empacota?”.

E eu digo que sim, o tar não comprime, só empacota… mas por conta de reunir os arquivos em um
lugar só, as referências de dados dos arquivos no disco podem mudar, e então isso pode influenciar
no tamanho do pacote tar.

Agora… vamos ver como tudo fica quando colocamos um compactador na jogada! Por exemplo,
vamos compactar o /etc de novo, só que agora, além de empacotar, vamos compactar!

E isso é muito simples… basta acrescentar mais uma opção ao comando tar:

z – Para compactar com gzip


j – Para compactar com bzip2

Veja o exemplo abaixo para compactar usando o gzip:

# tar czvf /root/bkp_etc.tar.gz /etc

No comando acima, o que mudou, foi a opção z que é para dizer ao tar que vamos usar o gzip para
compactar, e também mudamos a extensão do arquivo para tar.gz!

Agora vejam o exemplo para compactar usando o bzip2:

# tar cjvf /root/backup/bkp_etc.tar.bz2 /etc

Vejam novamente acima, o que mudou agora foi a opção j, que é para dizer ao tar que agora estamos
usando o bzip2 para compactar e também mudamos a extensão do arquivo para tar.bz2!

Vamos comparar os tamanhos:

# du -hs /root/backup/bkp_etc.tar*
1,4M bkp_etc.tar
248K bkp_etc.tar.bz2
288K bkp_etc.tar.gz

Vejam a diferença no tamanho dos arquivos quando não usamos nenhuma compactação e quando
usamos!

Agora… uma coisa que é importante saber é que, se estamos falando de backup, temos que ter
certeza de que os arquivos estão ok. Afinal de contas, de nada adianta um backup que os arquivos
estejam corrompidos!

E o tar, tem a opção que testa a integridade dos arquivos, é a opção t (test):

https://ivanix.wordpress.com/2009/06/06/empacotadores/ 2/4
16/09/2020 Empacotadores – Nix

# cd /root/backup

# tar tf bkp_etc.tar

# tar f bkp_etc.tar.gz

# tar f bkp_etc.tar.bz2

Se não houver nenhum erro, seu backup está OK. E quando for extrair (descompactar), o comando é
praticamente o mesmo… o que muda é a opção que será x (extract):

# cd /root/backup

# tar xvf bkp_etc.tar

# tar xvzf bkp_etc.tar.gz

# tar xvjf bkp_etc.tar.bz2

Nos comandos acima, além de extrair, usei a opção v (verbose) para mostrar o conteúdo do pacote
que está sendo extraído! Só lembrando que, o comando acima, irá extrair o pacote no diretório em
que você está, no meu caso, no /root/backup.

Imaginando que queira substituir o atual /etc pelo seu backup, o comando fica assim:

# tar xvf bkp_etc.tar -C /

# tar xvzf bkp_etc.tar.gz -C /

# tar xvjf bkp_etc.tar.bz2 -C /

Onde a opção -C indica ao tar que o pacote não será extraído no diretório atual, e sim no diretório
que estou indicando (no caso, o diretório /).

Bem, é isso ai pessoal! Até o próximo post !

Anúncios

DENUNCIAR ESTE ANÚNCIO


Learning bzip2, compact, compress, gzip, Linux, tar

Crie um website ou blog gratuito no WordPress.com.


https://ivanix.wordpress.com/2009/06/06/empacotadores/ 3/4
16/09/2020 Empacotadores – Nix

https://ivanix.wordpress.com/2009/06/06/empacotadores/ 4/4

Você também pode gostar