daniel@casadocodigo:~/backup$ ls
backup.tar concatenando.txt nano_basico.txt vim_basico.txt
daniel@casadocodigo:~/backup$
48
Casa do Código
Capítulo 4. Compactação e descompactação de arquivos
O que acabamos de fazer foi criar uma pasta chamada backup, mover o arquivo
backup.tar para dentro da pasta criada e fazer o processo reverso para separar os
arquivos.
O tipo .tar.gz
O .tar.gz consiste em dois processos diferentes e interligados, sendo que pri-
meiro ele cria um arquivo .tar e, em seguida, compacta utilizando o formato .gz.
Neste caso, além de gerar um único arquivo com o .tar, ele será compactado, re-
duzindo assim o seu tamanho.
Ainda dentro da pasta backup, vamos testar a criação do nosso arquivo dessa
vez compactado com .tar.gz:
daniel@casadocodigo:~/backup$ ls
backup.tar concatenando.txt nano_basico.txt vim_basico.txt
daniel@casadocodigo:~/backup$ tar zcvf backup.tar.gz *.txt
concatenando.txt
nano_basico.txt
vim_basico.txt
daniel@casadocodigo:~/backup$ ls
backup.tar
concatenando.txt vim_basico.txt
backup.tar.gz nano_basico.txt
daniel@casadocodigo:~/backup$
Note que agora temos o backup.tar.gz, o mesmo arquivo unido .tar, mas
compactado com .gz. Podemos verificar o tamanho dos arquivos com o comando
du para melhor entender o real efeito da compactação:
daniel@casadocodigo:~/backup$ du -h backup.tar backup.tar.gz
12K
backup.tar
4.0K backup.tar.gz
daniel@casadocodigo:~/backup$
Veja que usando o .tar.gz o arquivo foi reduzido para 4 kbytes! Para descom-
pactar arquivos .tar.gz usa-se as opções zxvf:
daniel@casadocodigo:~/backup$ tar zxvf backup.tar.gz
concatenando.txt
nano_basico.txt
vim_basico.txt
daniel@casadocodigo:~/backup$
49
4.1. Conhecendo o tar
Casa do Código
O tipo .tar.bz2
Com o .tar.bz2 ocorre
o mesmo caso que com o .tar.gz: a compactação
com o formato .bz2 é mais eficiente que o .gz, porém é mais lenta na hora de
gerar a cópia.
Vamos criar um arquivo compactado com .tar.bz2 utilizando as opções
jcvf e conferir a diferença entre os tamanhos com o comando du:
daniel@casadocodigo:~/backup$ tar jcvf backup.tar.bz2 *.txt
concatenando.txt
nano_basico.txt
vim_basico.txt
daniel@casadocodigo:~/backup$ ls
backup.tar
backup.tar.gz
nano_basico.txt
backup.tar.bz2 concatenando.txt vim_basico.txt
daniel@casadocodigo:~/backup$ du -h backup.tar*
12K
backup.tar
4.0K backup.tar.bz2
4.0K backup.tar.gz
daniel@casadocodigo:~/bashackup$
Não houve diferença entre os tamanhos nos formatos .gz e .bz2, já que esta-
mos compactando pequenos arquivos texto. Porém é possível notar a diferença em
arquivos maiores, por exemplo uma imagem ISO de um DVD.
Para fazer a descompactação de formatos .bz2 usamos as opções jxvf:
daniel@casadocodigo:~/backup$ tar jxvf backup.tar.bz2
concatenando.txt
nano_basico.txt
vim_basico.txt
daniel@casadocodigo:~/backup$
Podemos notar que, sempre que vamos compactar, a opção c é utilizada; e ao
realizar a descompactação usamos a opção x. Já para o formato .tar.gz, usamos
a opção z, e a opção j para o formato .tar.bz2.
Pode parecer um pouco complicado memorizar todas essas opções no inicio,
mas com a prática isso acaba se tornando natural.
50
Casa do Código
Capítulo 4. Compactação e descompactação de arquivos
4.2
Conhecendo o gzip/gunzip
Este é o programa de compressão mais utilizado no Linux. O gzip gera um arquivo
no formato .gz. Sua forma de uso para compactar é bastante simples:
daniel@casadocodigo:~/backup$ gzip -c -r *.txt > backup.gz
daniel@casadocodigo:~/backup$ ls
backup.gz concatenando.txt nano_basico.txt vim_basico.txt
daniel@casadocodigo:~/backup$
As opções -c e -r respectivamente informam que queremos criar um arquivo
e compactar. Ao executarmos a compactação de vários arquivos utilizando o gzip,
os arquivos serão concatenados em um só e em seguida comprimidos no formato
.gz.
Para descompactar usamos o gunzip, que pode ser utilizado com as opções -c
e -v para exibir o conteúdo a ser descompactado e informações sobre o nível de
compactação dos arquivos:
daniel@casadocodigo:~/backup$ gunzip backup.gz
daniel@casadocodigo:~/backup$
No exemplo, ao executar a descompactação com gunzip, o nosso arquivo
backup.gz deixará de existir pois por padrão o gunzip extrai o arquivo com-
primido no formato .gz e exclui o arquivo compacto.
4.3
Conhecendo o zip/unzip
O comando zip, como o nome já sugere, cria um arquivo compacto no formato
.zip, enquanto o unzip faz o trabalho inverso, descompactando.
A forma de uso é muito simples:
daniel@casadocodigo:~/backup$ zip backup.zip *.txt
adding: concatenando.txt (deflated 27%)
adding: nano_basico.txt (deflated 44%)
adding: vim_basico.txt (deflated 16%)
daniel@casadocodigo:~/backup$ ls
backup.zip concatenando.txt nano_basico.txt vim_basico.txt
daniel@casadocodigo:~/backup$
51
4.3. Conhecendo o zip/unzip
Casa do Código
Pacotes padrões em um Ubuntu
Tente este comando agora. Há uma grande chance de você não con-
seguir executá-lo.
Por quê? Porque ele não está instalado! O Ubuntu e as outras distros