Visite também: Br-Linux ·  VivaOLinux ·  LinuxSecurity ·  Dicas-L ·  NoticiasLinux ·  SoftwareLivre.org ·  [mais]
Voltar   Under-Linux.org Fóruns > UnderLinux Wiki
Wiki Classificados Galeria Reviews Jogos Comunidades RSS Feeds FAQ Termos de Uso Sobre
Cadastre-se FotosBlogs Lista de Membros Calendário Pesquisar Mensagens de Hoje Marcar Fóruns Como Lidos

Ferramentas pessoais
Publicidade

From UnderLinux Wiki

Tabela de conteúdo

Modo Texto - Parte 3 (Arquivos Compactados) - By Girls_Moderator

Antigamente... num passado não muito distante... você abria um certo programa aí chamado Winzip para compactar os seus arquivos e assim reduzir um pouco os seus kbs... e enviá-los tudo de uma vez só. A mesma coisa era para abrir. E ai se não tivesse esse programinha! Quantos .zip você deixou de verificar por falta de conhecimento... (o duro era quando, ainda por cima, tinha vírus...)

Esse mundo de trevas... acaba aqui.

Pois agora você irá conhecer quem são as figurinhas básicas de compactação do Linux. Vamos nos ater em explicar as mais conhecidas formas de empacotamento e compactação, como também as formas de descompactar esses arquivos. :-)

Eis aqui as nossas estrelinhas da tarde:

  • tar
  • tar + gzip
  • tar + bzip2
  • tar + compress

Comando File

Antes de aprender a compactar e descompactar arquivos, é necessário que você saiba que tipo de arquivo você está lidando. Para isso, usamos o comando "file". Ele te permite conhecer algumas informações importantes sobre o arquivo. Ele diz mais além: qual é o tipo de arquivo, se é um arquivo texto, um arquivo binário ou um arquivo compactado e com qual compactação.

Veja um exemplo:

[girls@girls girls_mod]$ file backup.tar.bz2
backup.tar.bz2: bzip2 compressed data, block size = 900k
[girls@girls moderator]$ file comandos.txt
comandos.txt: ISO-8859 text, with very long lines

Para listar todos os tipos de arquivos em seu diretório, digite o comando file seguido por um asterisco (*). Veja um exemplo:

[girls@girls moderator]$ file *
arquivo.tar.bz2: bzip2 compressed data, block size = 900k
backup.tar: GNU tar archive
backup.tar.gz: gzip compressed data, from Unix
comandos.txt: ISO-8859 text, with very long lines
comandos1.txt: ISO-8859 text
moderator.tar.bz2: gzip compressed data, from Unix
modotexto_compactadores.txt: ISO-8859 text, with very long lines
restante.txt: ISO-8859 text, with very long lines
similares.txt: ISO-8859 text
teste.txt: ASCII text
teste_moderator.tar.bz2: bzip2 compressed data, block size = 900k
teste_moderator.tar.gz: bzip2 compressed data, block size = 900k
[girls@girls moderator]$


Tar

Taí uma sigla que você vai ouvir (e ver) falar muito no linux: o compactador TAR (acrônimo para "tape archiver"). Este comando por si só não faz a compactação dos arquivos, mas sim apenas "empacota", pois ele utiliza recursos tanto do gzip, bzip2 e compress. Por isso, foi criado um parâmetro no TAR para que ambos os programas possam trabalhar juntos e fazer o que é necessário. Normalmente usa a extensão.tar nos seus arquivos. Um arquivo tar comprimido com gzip normalmente é nomeado com extensão .tar.gz ou .tgz e se comprimido com bzip2 normalmente se usa .tar.bz2 ou .tz2. Se ele é comprimido com o compress, utiliza a extensão tar.Z .


Resumindo: O empacotamento tar é ideal para pacotes de arquivos que você irá mexer posteriormente (inserir, renomear, deletar e atualizar). O TAR também consegue gravar a propriedade e as permissões dos arquivos. Ainda, consegue manter a estrutura de diretórios original (se houve compactação com diretórios), assim como as ligações diretas e simbólicas. Um exemplo bom para entender é um backup básico daquela discografia do Pink Floyd que há anos você está montando. Imagine você se por acaso aparecer mais algumas mp3 que precisam estar inseridas nesse backup. O tar permite que você altere o conteúdo do empacotamento, sem precisar descompactar e recompactar novamente (como acontece no caso dos tar."alguma coisa"). Isso poupa trabalho para você (pensa bem o quanto você vai demorar para descompactar um arquivo imenso como deveria ser esse de mp3). Por isso, se for reunir arquivos importantes, que estão sempre sendo atualizados, use o empacotamento tar.


Vamos dar um exemplo:

[girls@girls musicas]$ tar cvf mp3.tar .
./
./confortably_numb.mp3
./money.mp3
./on_the_turning_away.mp3
./lost_words.mp3
./mother.mp3
./the_wall.mp3
./in_the_flesh.mp3
./dogs.mp3
./nobody_home.mp3
./stop.mp3
./goodbye_blue_sky.mp3
tar: ./mp3.tar é o arquivo; não será arquivado
[girls@girls musicas]$ tar tvf mp3.tar
drwxrwxr-x girls/girls 0 2005-05-12 09:00:14 ./
-rw-rw-r-- girls/girls 37681 2005-05-07 10:31:21 ./confortably_numb.mp3
-rw-rw-r-- girls/girls 87977 2005-05-07 10:31:45 ./money.mp3
-rw-rw-r-- girls/girls 62965 2005-05-07 10:31:33 ./lost_words.mp3
-rw-rw-r-- girls/girls 31731 2005-05-07 10:26:02 ./mother.mp3
-rw-rw-r-- girls/girls 58651 2005-05-07 10:46:54 ./the_wall.mp3
-rw-rw-r-- girls/girls 50840 2005-05-07 10:32:24 ./in_the_flesh.mp3
-rw-rw-r-- girls/girls 46935 2005-05-07 10:32:35 ./dogs.mp3
-rw-rw-r-- girls/girls 378301 2005-05-11 18:31:11 ./nobody_home.mp3
-rw-rw-r-- girls/girls 755070 2005-05-11 18:31:29 ./stop.mp3
-rw-rw-r-- girls/girls 81920 2005-05-11 18:40:09 ./goodbye_blue_sky.mp3
[girls@girls musicas]$

Viu só como é simples? :)

(Parece que escutei você dizendo... "bah, não entendi (aqui você coloca o palavrão que preferir) nenhuma!")

Então vamos lá, amiguinha... analisando os comandos dados no shell veremos que:

[girls@girls musicas]$ tar cvf mp3.tar .

Isso significa que você está criando um empacotamento tar com as seguintes solicitações:

c = criando
v = listando
f = dando o nome que você deseja pro arquivo.tar

Depois das solicitações, você está dando o nome para o arquivo (no caso, mp3.tar) e o ponto final significa que você não está especificando arquivo nenhum e sim pedindo para compactar toda a pasta que você se encontra (no caso, a "musicas").

[girls@girls musicas]$ tar tvf mp3.tar

Isso significa que você está pedindo para:

t = visualizar
v = listar
f = informando o nome do arquivo.tar que deseja visualizar.

Simplesmente para ler o que você acabou de empacotar :) Viu que ele te listou todos os arquivos que estão dentro do mp3.tar? :} Fácil, não?

E se eu não quiser criar um tar com toda a pasta e sim somente com duas planilhas importantes que eu uso para controlar as minhas finanças (ou seja, sempre atualizando)?

[girls@girls arquivos]$ tar cvf planilhas.tar contas.xls gastos.xls
contas.xls
gastos.xls
[girls@girls arquivos]$ tar tvf planilhas.tar
-rw-rw-r-- girls/girls 46935 2005-05-07 10:32:35 contas.xls
-rw-rw-r-- girls/girls 31731 2005-05-07 10:26:02 gastos.xls
[girls@girls arquivos]$

Viu só? É só você colocar o nome dos arquivos que deseja, posteriormente à solicitação do comando tar. Simples! :)

Decore essas opções do comando tar (em alguns parâmetros o uso de '-' hífen não é necessário).

-A = Anexa os arquivos tar a um arquivo.
-c = Cria um novo arquivo.
-C = Especifica o diretório dos arquivos a serem armazenados.
-d = Encontra as diferenças entre um tar e o sistema de arquivos.
-delete = Apaga arquivos
-f = Indica o nome do arquivo final (que será o arquivo compactado).
-p = Mantém as permissões originais do(s) arquivo(s);
-r = Anexa arquivos ao final do arquivo tar
-t = Lista o conteúdo do arquivo.
-u = Adiciona somente arquivos com data mais recente que a do arquivo que estiver no arquivo compactado.
-x = Descompacta o arquivo.
-v = Mostra os arquivos que estão sendo processados.
-j = Filtra o arquivo a ser processado com bzip2/bunzip2. Necessário quando o arquivo é compactado com tar + bzip2.
-z = Filtra o arquivo a ser processado com gzip/gunzip. Necessário quando o arquivo é compactado com tar + gzip.
-Z = Filtra o arquivo a ser processado com compress. Necessário quando o arquivo é compactado com tar + compress.


Mas há outras opções que não vamos listar aqui para não te confundir. Digite o comando (man tar) dentro do shell para olhar as outras opções. (Caso você não tenha o man instalado, use o tar --help). Crie um arquivo .tar e teste bastante as opções. Assim você poderá entender melhor todos os parâmetros do tar.


Tar + Gzip

Conforme já foi dito nesse artigo, o TAR sozinho não faz verão. Ele só empacota, mas não compacta. Para isso, foi criado parâmetros para que o houvesse interação direta entre ele e os compactadores Gzip, Bzip2 e Compress. De uma vez só, você irá empacotar e compactar os arquivos que você deseja. Mas para quê fazer isso? Simples...


Vamos supor que você queira fazer um arquivo comprimido (de alguns hentais maravilhosos que você salvou) com a intenção de enviar para um pretê seu (sabe se lá com qual intenção...). Todas as suas fotos estão localizadas num diretório que se chama "girls_mod". Indo pro shell, faríamos o seguinte...


[girls@girls girls_mod]$ tar cvfz hentais.tar.gz .
./
./anna_2.gif
./make.gif
./lips.gif
./antony.gif
./dee_dee.gif
./anna_1.gif
[girls@girls girls_mod]$ ls -l
total 680
-rw-rw-r-- 1 girls girls 37681 Mai 7 10:31 anna_1.gif
-rw-rw-r-- 1 girls girls 87977 Mai 7 10:31 anna_2.gif
-rw-rw-r-- 1 girls girls 58651 Mai 7 10:46 antony.gif
-rw-rw-r-- 1 girls girls 50840 Mai 7 10:32 dee_dee.gif
-rw-rw-r-- 1 girls girls 329611 Mai 12 16:25 hentais.tar.gz
-rw-rw-r-- 1 girls girls 31731 Mai 7 10:26 lips.gif
-rw-rw-r-- 1 girls girls 62965 Mai 7 10:31 make.gif
[girls@girls girls_mod]$


Tá certo... mas o que significa "cvfz"? Significa que você está criando (c), mandando listar os arquivos que estão sendo incluídos (v), dando o nome que deseja pro arquivo compactado (f) e determinando qual será o método de compactação (z). O "z" significa que você está criando uma compactação com o gzip.


Ah... e se é você que recebe um arquivo desses... (e fica doidinha pra ver ele, claro)... como fazer para descompactar? Vamos pro shell...

[girls@girls girls_mod]$ tar zxvf hentais.tar.gz
./
./anna_2.gif
./make.gif
./lips.gif
./antony.gif
./dee_dee.gif
./anna_1.gif
[girls@girls girls_mod]$ ls -l
total 680
-rw-rw-r-- 1 girls girls 37681 Mai 7 10:31 anna_1.gif
-rw-rw-r-- 1 girls girls 87977 Mai 7 10:31 anna_2.gif
-rw-rw-r-- 1 girls girls 58651 Mai 7 10:46 antony.gif
-rw-rw-r-- 1 girls girls 50840 Mai 7 10:32 dee_dee.gif
-rw-rw-r-- 1 girls girls 329611 Mai 13 15:31 hentais.tar.gz
-rw-rw-r-- 1 girls girls 31731 Mai 7 10:26 lips.gif
-rw-rw-r-- 1 girls girls 62965 Mai 7 10:31 make.gif
[girls@girls girls_mod]$


Qual foi a mágica? Analisando, passo-a-passo, os comandos dados no shell, veremos que:

[girls@girls girls_mod]$ tar zxvf hentais.tar.gz
z (gzip)
x (extrair)
v (verbose)
f (nome do arquivo)

Se você não deseja descompactar o arquivo na pasta que está, é só usar o parâmetro -C e indicar o caminho da pasta que deseja:


[girls@girls girls_mod]$ tar zxvf hentais.tar.gz -C /home/girls/moderator/fotos/
./
./anna_2.gif
./make.gif
./lips.gif
./antony.gif
./dee_dee.gif
./anna_1.gif
[girls@girls girls_mod]$


Se você entrar no diretório indicado, verá que os arquivos foram para lá :) Simples! Caso você deseje criar arquivos.tgz (que é a outra forma de usar um tar+gzip), use:


[girls@girls girls_mod]$ tar cvfz hentais.tgz (aqui você coloca se quer copiar toda a pasta ou cita os arquivos que quer compactar).


E para descompactar:


[girls@girls girls_mod]$ tar zxvf hentais.tgz


Tar + Bzip2

Criando com o Bzip2 (que tem uma compactação mais demorada, mas que fica menor do que uma tar.gz), faremos o seguinte:


[girls@girls girls_mod]$ tar cvfj hentais.tar.bz2 .
./
./anna_2.gif
./make.gif
./lips.gif
./antony.gif
./dee_dee.gif
./anna_1.gif
[girls@girls girls_mod]$ tar tvfj hentais.tar.bz2
drwxrwxr-x girls/girls 0 2005-05-13 16:02:21 ./
-rw-rw-r-- girls/girls 87977 2005-05-07 10:31:45 ./anna_2.gif
-rw-rw-r-- girls/girls 62965 2005-05-07 10:31:33 ./make.gif
-rw-rw-r-- girls/girls 31731 2005-05-07 10:26:02 ./lips.gif
-rw-rw-r-- girls/girls 58651 2005-05-07 10:46:54 ./antony.gif
-rw-rw-r-- girls/girls 50840 2005-05-07 10:32:24 ./dee_dee.gif
-rw-rw-r-- girls/girls 37681 2005-05-07 10:31:21 ./anna_1.gif
[girls@girls girls_mod]$


Só recapitulando: c (criando), v (verbose), f (dando o nome para a compactação) e j (compactação com o bzip2).


E para descompactar?


[girls@girls girls_mod]$ tar jxvf hentais.tar.bz2
./
./anna_2.gif
./make.gif
./lips.gif
./antony.gif
./dee_dee.gif
./anna_1.gif
[girls@girls girls_mod]$ ls -l
total 680
-rw-rw-r-- 1 girls girls 37681 Mai 7 10:31 anna_1.gif
-rw-rw-r-- 1 girls girls 87977 Mai 7 10:31 anna_2.gif
-rw-rw-r-- 1 girls girls 58651 Mai 7 10:46 antony.gif
-rw-rw-r-- 1 girls girls 50840 Mai 7 10:32 dee_dee.gif
-rw-rw-r-- 1 girls girls 331194 Mai 13 16:05 hentais.tar.bz2
-rw-rw-r-- 1 girls girls 31731 Mai 7 10:26 lips.gif
-rw-rw-r-- 1 girls girls 62965 Mai 7 10:31 make.gif
[girls@girls girls_mod]$


A mesma coisa será se você quiser descompactar em alguma outra pasta que não seja a que você está... use o parâmetro -C e o caminho do diretório.


E se você quiser criar um arquivo.tz2?


[girls@girls girls_mod]$ tar cvfj hentais.tz2 (aqui você coloca se quer copiar toda a pasta ou cita os arquivos que quer compactar).


E descompactar?


[girls@girls girls_mod]$ tar jxvf hentais.tz2


Tar + Compress

Mas e se quiser com o Compress? Embora pouco usado esse tipo de compressão, não custa nada explicar né?


[girls@girls girls_mod]$ tar cvfZ hentais.tar.Z .
./
./anna_2.gif
./make.gif
./lips.gif
./antony.gif
./dee_dee.gif
./anna_1.gif
tar: Processo filho terminou com estado 2
tar: Erro só assinalado no fim da execução
[girls@girls girls_mod]$ tar tvfZ hentais.tar.Z
drwxrwxr-x girls/girls 0 2005-05-13 15:16:18 ./
-rw-rw-r-- girls/girls 87977 2005-05-07 10:31:45 ./anna_2.gif
-rw-rw-r-- girls/girls 62965 2005-05-07 10:31:33 ./make.gif
-rw-rw-r-- girls/girls 31731 2005-05-07 10:26:02 ./lips.gif
-rw-rw-r-- girls/girls 58651 2005-05-07 10:46:54 ./antony.gif
-rw-rw-r-- girls/girls 50840 2005-05-07 10:32:24 ./dee_dee.gif
-rw-rw-r-- girls/girls 37681 2005-05-07 10:31:21 ./anna_1.gif
[girls@girls girls_mod]$


Como já foi explicado, repare no comando e nos parâmetros. Para criar um tar.Z, utilize o parâmetro (Z) em letra MAIÚSCULA.


Descompactando:

[girls@girls girls_mod]$ tar -Zxvf hentais.tar.Z
./
./anna_2.gif
./make.gif
./lips.gif
./antony.gif
./dee_dee.gif
./anna_1.gif
[girls@girls girls_mod]$ ls -l
total 764
-rw-rw-r-- 1 girls girls 37681 Mai 7 10:31 anna_1.gif
-rw-rw-r-- 1 girls girls 87977 Mai 7 10:31 anna_2.gif
-rw-rw-r-- 1 girls girls 58651 Mai 7 10:46 antony.gif
-rw-rw-r-- 1 girls girls 50840 Mai 7 10:32 dee_dee.gif
-rw-rw-r-- 1 girls girls 415607 Mai 13 15:17 hentais.tar.Z
-rw-rw-r-- 1 girls girls 31731 Mai 7 10:26 lips.gif
-rw-rw-r-- 1 girls girls 62965 Mai 7 10:31 make.gif 
[girls@girls girls_mod]$


Sempre repare no Z maiúsculo senão vai dar ZEBRA! ;)


Crie arquivos, compacte e descompacte... faça testes. Só assim você irá entender perfeitamente o que estamos lhe dizendo ;) São comandos simples, mas que requerem muito treino para serem compreendidos... por isso, treine bastante :P


O próximo artigo também falará de compactação. Ou acha que o mundo só gira em torno do umbigo do Tar? :}

Elaborado por - Bios, Ivy e Sukkubus (Girls_Moderator)

Base de pesquisa: http://www.conectiva.com/doc/livros/online/10.0/usuario/pt_BR/ch08s05.html

Horários baseados na GMT -3. Agora são 10:39.


Powered by vBulletin®
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd
SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.