Capítulo 11: Utilizando compactadores

Para compactar arquivos, usaremos o gzip, que é distribuído nos termos da GNU. Existem outros compactadores, como o unzip, zip, compress, bzip, unarj, e muitos outros que funcionam da mesma maneira que no formato DOS, mas a maioria dos arquivos pra Linux na Internet são compactados com o gzip, acompanhado do tar, que também abordaremos agora.
Suponhamos que você tenha o seguinte arquivo em um diretório:
[root@guarani /root]# ls -l
-rwxr-xr-x   2   root   users	16000   Nov   04	   14:00   teste

[root@guarani /root]# gzip teste
[root@guarani /root]# ls -l
-rwxr-xr-x   2   root   users     900   Nov   04	   14:01   teste.gz
Note que o antigo arquivo, teste, foi deletado depois que o gzip passou sem problemas.
Geralmente os arquivos, quando compactados no Linux, mantém a mesma extensão.

Ex.:
teste.txt (antes)
teste.txt.gz (depois)

Para se descompactar um arquivo *.z ou *.gz, usa-se o comando gunzip, da seguinte forma:
[root@guarani /root]# ls -l
-rwxr-xr-x   2   root   users     900   Nov   04	   14:01   teste.gz

[root@guarani /root]# gunzip teste.gz
[root@guarani /root]# ls -l
-rwxr-xr-x   2   root   users   16000   Nov   04	   14:01   teste
Note-se também que o antigo arquivo compactado foi deletado. O gzip não funciona igual ao pkzip e winzip quando se trata de diretórios. Para se compactar múltiplos arquivos e diretórios diferentes, usa-se a associação do comando tar com o comando gzip.
O tar é um comando designado para criação de arquivos que contêm diversos outros arquivos internamente. Usado muito na criação de backup's em programas e sistemas empresariais devido a sua característica de poder unir arquivos e diretórios em apenas um arquivo. Nas empresas que usam o tar, geralmente usam a própria data do dia como nome para os arquivos de backup.
Exemplo:
[root@guarani /backup]#  ls -l
-rwxr-xr-x  2  root root     11524211   Dez   29	14:01  bkp29121998
Seu uso, bastante simples, é feito da seguinte forma:

tar <opções> <arquivos>

OPÇÕES :
c - cria um novo arquivo tar.
t - lista o conteúdo do arquivo tar.
x - extrai o conteúdo do arquivo tar.
v - mostra na tela os arquivos que estão sendo compactados/descompactados
f - arquivo de origem/destino.
z - filtra o arquivo com gzip.
r - para colocar novos arquivos no final do arquivo .tar
u - para fazer um update nos arquivos do arquivo .tar
d - para comparar o conteúdo do arquivo com arquivos do sistema
k - para manter arquivos existentes no diretório.

Imagine, por exemplo, que você tenha um diretório chamado "teste" com os seguintes arquivos:
[root@guarani /teste]# ls -l
-rwxr-xr-x   1   root root      21    Nov   08	  16:06  Makefile
-rwxr--r--   1   root root     847    Dez   11	  04:41  README
-r-xr-xr-x   1   root root    9254    Mar   16	  12:55  teste.txt
-rw-rw-rw-   1   root root      36    Jul   01	  09:56  alysson.net
-rwxrwxrwx   1   root root     395    Nov   12	  11:26  lixo
-rwxr-xr-x   1   root root    1223    Mai   29	  06:01  profile
Para que compactemos este diretório, é necessário que antes de tudo, criar um arquivo .tar
[root@guarani /]# tar cvf teste.tar teste
teste/
teste/Makefile
teste/README
teste/teste.txt
teste/alysson.net
teste/lixo
teste/profile

[root@guarani /]# ls -l
-rwxr-xr-x   1   root root    11776    Nov   18	  16:52  teste.tar
O comando digitado irá juntar todo o conteúdo do diretório em um único arquivo .tar. A opção "v" é para que possamos ver o que está sendo colocado no arquivo teste.tar.
Note que esse novo arquivo contem o número somado de bytes dos arquivo que estavam no diretório teste.
Para se compactar este arquivo, usa-se o comando gzip da seguinte forma:
[root@guarani /]# gzip -9 teste.tar
[root@guarani /]# ls -l
-rwxr-xr-x   1   root root      921    Nov   18	  16:54  teste.tar.gz
O inconveniente disso, é que temos que fazer o tar e depois compactá-lo. Para economizar tempo, usa-se a seguinte linha de comando:
[root@guarani /]# tar cvf teste.tar teste | gzip > teste.tar
[root@guarani /]# ls -l
-rwxr-xr-x   1   root root      921    Nov   18	  16:54  teste.tar.gz
Para se descompactar um arquivo dessa forma, usa-se o comando:
[root@guarani /]# tar xvfz teste.tar.gz
[root@guarani /]# ls -l
-rwxr-xr-x   1   root root      21    Nov   08	  16:06  Makefile
-rwxr--r--   1   root root     847    Dez   11	  04:41  README
-r-xr-xr-x   1   root root    9254    Mar   16	  12:55  teste.txt
-rw-rw-rw-   1   root root      36    Jul   01	  09:56  alysson.net
-rwxrwxrwx   1   root root     395    Nov   12	  11:26  lixo
-rwxr-xr-x   1   root root    1223    Mai   29	  06:01  profile
Outro Exemplo :
[marisa@guarani /tmp]$ l -d textos    
drwxrwxr-x   4 marisa  marisa      1024 jul 23 11:44 textos/    

[marisa@guarani /tmp]$ tar cvzf textos.tgz textos    
textos/    
textos/perl/   
textos/java/   

[marisa@guarani /tmp]$ l textos.tgz   
-rw-rw-r--   1 marisa  marisa       155 jul 29 11:24 textos.tgz   

[marisa@guarani /tmp]$ tar tvzf textos.tgz    
drwxrwxr-x marisa/marisa   0 1998-07-23 11:44 textos/    
drwxrwxr-x marisa/marisa   0 1998-07-23 11:38 textos/perl/  
drwxrwxr-x marisa/marisa   0 1998-07-23 11:38 textos/java/



Adicione seu banner aqui, em troca pedimos que coloque nosso banner no seu site.
Contato