[ anterior ] [ Conteúdo ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ 18 ] [ 19 ] [ 20 ] [ 21 ] [ 22 ] [ 23 ] [ 24 ] [ 25 ] [ 26 ] [ 27 ] [ 28 ] [ 29 ] [ 30 ] [ 31 ] [ 32 ] [ próximo ]


Guia Foca GNU/Linux
Capítulo 18 - Compactadores


Esta seção explica o que são e como usar programas compactadores no GNU/Linux, as características de cada um, como identificar um arquivo compactado e como descompactar um arquivo compactado usando o programa correspondente.

A utilização de arquivos compactados é método útil principalmente para reduzir o consumo de espaço em disco ou permitir grandes quantidades de texto serem transferidas para outro computador através de disquetes.


18.1 O que fazem os compactadores/descompactadores?

Compactadores são programas que diminuem o tamanho de um arquivo (ou arquivos) através da substituição de caracteres repetidos. Para entender melhor como eles funcionam, veja o próximo exemplo:

     compactadores compactam e deixam arquivos compactados.
     
     -- após a compactação da frase --
     
     %dores %m e deixam arquivos %dos

O que aconteceu realmente foi que a palavra compacta se encontrava 3 vezes na frase acima, e foi substituída por um sinal de %. Para descompactar o processo seria o contrário: Ele substituiria % por compacta e nós temos a frase novamente restaurada.

Você deve ter notado que o tamanho da frase compactada caiu quase pela metade. A quantidade de compactação de um arquivo é chamada de taxa de compactação. Assim se o tamanho do arquivo for diminuído a metade após a compactação, dizemos que conseguiu uma taxa de compactação de 2:1 (lê-se dois para um), se o arquivo diminuiu 4 vezes, dizemos que conseguiu uma compactação de 4:1 (quatro para um) e assim por diante.

Para controle dos caracteres que são usados nas substituições, os programas de compactação mantém cabeçalhos com todas as substituições usadas durante a compactação. O tamanho do cabeçalho pode ser fixo ou definido pelo usuário, depende do programa usado na compactação.

Este é um exemplo bem simples para entender o que acontece durante a compactação, os programas de compactação executam instruções muito avançadas e códigos complexos para atingir um alta taxa de compactação.

Observações:


18.1.1 Tipos de compactação

Existem basicamente dois tipos de compactação, a compactação sem perdas e a compactação com perdas.

Os exemplos a seguir tentam explicar de forma simples os conceitos envolvidos.

A compactação sem perdas, como o próprio nome diz não causa nenhuma perda nas informações contidas no arquivo. Quando você compacta e descompacta um arquivo, o conteúdo é o mesmo do original.

A compactação com perdas é um tipo específico de compactação desenvolvido para atingir altas taxas, porém com perdas parciais dos dados. É aplicada a tipos de arquivos especiais, como músicas e imagens ou arquivos que envolvam a percepção humana.

Sabe-se que o ouvido humano não é tão sensível a determinados sons e freqüências, então a compactação de um arquivo de música poderia deixar de gravar os sons que seriam pouco percebidos, resultando em um arquivo menor. Uma compactação do tipo ogg ou mp3 utiliza-se destes recursos. O arquivo resultante é muito menor que o original, porém alguns dados sonoros são perdidos. Você só notaria se estivesse reproduzindo a música em um equipamento de alta qualidade e se tivesse um ouvido bem aguçado. Para efeitos práticos, você está ouvindo a mesma música e economizando muito espaço em disco.

Outro exemplo de compactação com perdas são as imagens jpg. Imagine que você tem uma imagem com 60000 tons de cor diferentes, mas alguns tons são muito próximos de outros, então o compactador resume para 20000 tons de cor e a imagem terá 1/3 do tamanho original e o nosso olho conseguirá entender a imagem sem problemas e quase não perceberá a diferença. Exemplos de extensões utilizadas em imagens compactadas são jpg, png, gif.

Apesar das vantagens da grande taxa de compactação conseguida nos processos com perdas, nem sempre podemos utilizá-lo. Quando compactamos um texto ou um programa, não podemos ter perdas, senão o nosso texto sofre alterações ou o programa não executa. Nem mesmo podemos tem perdas quando compactamos imagens ou musicas que serão utilizadas em processos posteriores de masterização, mixagem ou impressão em alta qualidade.


18.2 Extensões de arquivos compactados

As extensões identificam o tipo de um arquivo e assim o programa o programa necessário para trabalhar com aquele tipo de arquivo. Existem dezenas de extensões que identificam arquivos compactados. Quando um arquivo (ou arquivos) é compactado, uma extensão correspondente ao programa usado é adicionada ao nome do arquivo (caso o arquivo seja compactado pelo gzip receberá a extensão .gz, por exemplo). Ao descompactar acontece o contrário: a extensão é retirada do arquivo. Abaixo segue uma listagem de extensões mais usadas e os programas correspondentes:


18.3 gzip

É praticamente o compactador padrão do GNU/Linux, possui uma ótima taxa de compactação e velocidade. A extensão dos arquivos compactados pelo gzip é a .gz, na versão para DOS, Windows NT é usada a extensão .z.

gzip [opções] [arquivos]

Onde:

arquivos

Especifica quais arquivos serão compactados pelo gzip. Caso seja usado um -, será assumido a entrada padrão. Curingas podem ser usados para especificar vários arquivos de uma só vez (veja Curingas, Seção 2.12).

Opções
-d, --decompress [arquivo]

Descompacta um arquivo.

-f

Força a compactação, compactando até mesmo links.

-l [arquivo]

Lista o conteúdo de um arquivo compactado pelo gzip.

-r

Compacta diretórios e sub-diretórios.

-c [arquivo]

Descompacta o arquivo para a saída padrão.

-t [arquivo]

Testa o arquivo compactado pelo gzip.

-[num], --fast, --best

Ajustam a taxa de compactação/velocidade da compactação. Quanto melhor a taxa menor é a velocidade de compactação e vice versa. A opção --fast permite uma compactação rápida e tamanho do arquivo maior. A opção --best permite uma melhor compactação e uma velocidade menor.

O uso da opção -[número] permite especificar uma compactação individualmente usando números entre 1 (menor compactação) e 9 (melhor compactação). É útil para buscar um bom equilibro entre taxa de compactação/velocidade (especialmente em computadores muito lentos).

Quando um arquivo é compactado pelo gzip, é automaticamente acrescentada a extensão .gz ao seu nome.

O gzip também reconhece arquivos compactados pelos programas zip, compress, compress -H e pack. As permissões de acesso dos arquivos são também armazenadas no arquivo compactado.

Exemplos:


18.4 zip

Utilitário de compactação compatível com pkzip (do DOS) e trabalha com arquivos de extensão .zip. Possui uma ótima taxa de compactação e velocidade no processamento dos arquivos compactados (comparando-se ao gzip).

zip [opções] [arquivo-destino] [arquivos-origem]

Onde:

arquivo-destino

Nome do arquivo compactado que será gerado.

arquivos-origem

Arquivos/Diretórios que serão compactados. Podem ser usados curingas para especificar mais de um arquivo de uma só vez (veja Curingas, Seção 2.12).

opções
-r

Compacta arquivos e sub-diretórios.

-e

Permite encriptar o conteúdo de um arquivo .zip através de senha. A senha será pedida no momento da compactação.

-f

Somente substitui um arquivo compactado existente dentro do arquivo .zip somente se a versão é mais nova que a atual. Não acrescenta arquivos ao arquivo compactado. Deve ser executado no mesmo diretório onde o programa zip foi executado anteriormente.

-F

Repara um arquivo .zip danificado.

-[NUM]

Ajusta a qualidade/velocidade da compactação. Pode ser especificado um número de 1 a 9. O 1 permite mínima compactação e máxima velocidade, 9 permite uma melhor compactação e menor velocidade.

-i [arquivos]

Compacta somente os [arquivos] especificados.

-j

Se especificado, não armazena caminhos de diretórios.

-m

Apaga os arquivos originais após a compactação.

-T [arquivo]

Procura por erros em um arquivo .zip. Caso sejam detectados problemas, utilize a opção -F para corrigi-los.

-y

Armazena links simbólicos no arquivo .zip. Por padrão, os links simbólicos são ignorados durante a compactação.

-k [arquivo]

Modifica o [arquivo] para ter compatibilidade total com o pkzip do DOS.

-l

Converte saltos de linha UNIX (LF) para o formato CR+LF (usados pelo DOS). Use esta opção com arquivos Texto.

-ll

Converte saltos de linha DOS (CR+LF) para o formato UNIX (LF). Use esta opção com arquivos texto.

-n [extensão]

Não compacta arquivos identificados por [extensão]. Ele é armazenado sem compactação no arquivo .zip, muito útil para uso com arquivos já compactados.

Caso sejam especificados diversas extensões de arquivos, elas devem ser separadas por : - Por exemplo, zip -n .zip:.tgz arquivo.zip *.txt.

-q

Não mostra mensagens durante a compactação do arquivo.

-u

Atualiza/adiciona arquivos ao arquivo .zip

-X

Não armazena detalhes de permissões, UID, GID e datas dos arquivos.

-z

Permite incluir um comentário no arquivo .zip.

Caso o nome de arquivo de destino não termine com .zip, esta extensão será automaticamente adicionada. Para a descompactação de arquivos .zip no GNU/Linux, é necessário o uso do utilitário unzip. Exemplos:


18.5 unzip

Descompacta arquivos .zip criados com o programa zip. Este programa também é compatível com arquivos compactados pelo pkzip do DOS.

unzip [opções] [arquivo.zip] [arquivos-extrair] [-d diretório]

Onde:

arquivo.zip

Nome do arquivo que deseja descompactar. Podem ser usados curingas para especificar mais de um arquivo para ser descompactado.

arquivos-extrair

Nome dos arquivos (separados por espaço) que serão descompactados do arquivo .zip. Caso não seja especificado, é assumido * (todos os arquivos serão descompactados).

Se for usado -x arquivos, os arquivos especificados não serão descompactados. O uso de curingas é permitido.

-d diretório

Diretório onde os arquivos serão descompactados. Caso não for especificado, os arquivos serão descompactados no diretório atual.

opções
-c

Descompacta os arquivos para stdout (saída padrão) ao invés de criar arquivos. Os nomes dos arquivos também são mostrados (veja a opção -p).

-f

Descompacta somente arquivos que existam no disco e mais novos que os atuais.

-l

Lista os arquivos existentes dentro do arquivo .zip.

-M

Efetua uma pausa a cada tela de dados durante o processamento (a mesma função do comando more).

-n

Nunca substitui arquivos já existentes. Se um arquivo existe ele é pulado.

-o

Substitui arquivos existentes sem perguntar. Tem a função contrária a opção -n.

-P [SENHA]

Permite descompactar arquivos .zip usando a [SENHA]. CUIDADO! qualquer usuário conectado em seu sistema pode ver a senha digitada na linha de comando digitada.

-p

Descompacta os arquivos para stdout (saída padrão) ao invés de criar arquivos. Os nomes dos arquivos não são mostrados (veja a opção -c).

-q

Não mostra mensagens.

-t

Verifica o arquivo .zip em busca de erros.

-u

Idêntico a opção -f só que também cria arquivos que não existem no diretório.

-v

Mostra mais detalhes sobre o processamento do unzip.

-z

Mostra somente o comentário existente no arquivo.

Por padrão o unzip também descompacta sub-diretórios caso o arquivo .zip tenha sido gerado com zip -r.

Exemplos:


18.6 tar

Na verdade o tar não é um compactador e sim um "arquivador" (ele junta vários arquivos em um só), mas pode ser usado em conjunto com um compactar (como o gzip ou zip) para armazena-los compactados. O tar também é muito usado para cópias de arquivos especiais ou dispositivos do sistema. É comum encontrar arquivos com a extensão .tar, .tar.gz, .tgz, .tar.bz2, .tar.Z, .tgZ, o primeiro é um arquivo normal gerado pelo tar e todos os outros são arquivos gerados através tar junto com um programa de compactação (gzip (.gz), bzip2 (.bz2) e compress (.Z).

tar [opções] [arquivo-destino] [arquivos-origem]

Onde:

arquivo-destino

É o nome do arquivo de destino. Normalmente especificado com a extensão .tar caso seja usado somente o arquivamento ou .tar.gz/.tgz caso seja usada a compactação (usando a opção -z).

arquivos-origem

Especifica quais arquivos/diretórios serão compactados.

opções
-c, --create

Cria um novo arquivo .tar

-t, --list

Lista o conteúdo de um arquivo .tar

-u, --update

Atualiza arquivos compactados no arquivo .tar

-f, --file [HOST:]F

Usa o arquivo especificado para gravação ou o dispositivo /dev/rmt0.

-j, --bzip2

Usa o programa bzip2 para processar os arquivos do tar

-l, --one-file-system

Não processa arquivos em um sistema de arquivos diferentes de onde o tar foi executado.

-M, --multi-volume

Cria/lista/descompacta arquivos em múltiplos volumes. O uso de arquivos em múltiplos volumes permite que uma grande cópia de arquivos que não cabe em um disquete, por exemplo, seja feita em mais de um disquete.

-o

Grava o arquivo no formato VT7 ao invés do ANSI.

-O, --to-stdout

Descompacta arquivos para a saída padrão ao invés de gravar em um arquivo.

--remove-files

Apaga os arquivos de origem após serem processados pelo tar.

-R, --record-number

Mostra o número de registros dentro de um arquivo tar em cada mensagem.

--totals

Mostra o total de bytes gravados com a opção --create.

-v

Mostra os nomes dos arquivos enquanto são processados.

-V [NOME]

Inclui um [NOME] no arquivo tar.

-W, --verify

Tenta verificar o arquivo gerado pelo tar após grava-lo.

x

Extrai arquivos gerados pelo tar

-X [ARQUIVO]

Tenta apagar o [ARQUIVO] dentro de um arquivo compactado .tar.

-Z

Usa o programa compress durante o processamento dos arquivos.

-z

Usa o programa gzip durante o processamento dos arquivos.

--use-compress-program [PROGRAMA]

Usa o [PROGRAMA] durante o processamento dos arquivos. Ele deve aceitar a opção -d.

-[0-7][lmh]

Especifica a unidade e sua densidade.

A extensão precisa ser especificada no arquivo de destino para a identificação correta:

É importante saber qual qual o tipo de compactador usado durante a geração do arquivo .tar pois será necessário especificar a opção apropriada para descompacta-lo (para detalhes veja Extensões de arquivos compactados, Seção 18.2).

Exemplos:


18.7 bzip2

É um novo compactador que vem sendo cada vez mais usado porque consegue atingir a melhor compactação em arquivos texto se comparado aos já existentes (em conseqüência sua velocidade de compactação também é menor; quase duas vezes mais lento que o gzip). Suas opções são praticamente as mesmas usadas no gzip e você também pode usa-lo da mesma forma. A extensão dos arquivos compactados pelo bzip2 é a .bz2

bzip2 [opções] [arquivos]

Onde:

arquivos

Especifica quais arquivos serão compactados pelo bzip2. Caso seja usado um -, será assumido a entrada padrão. Curingas podem ser usados para especificar vários arquivos de uma só vez (veja Curingas, Seção 2.12).

Opções
-d, --decompress [arquivo]

Descompacta um arquivo.

-f

Força a compactação, compactando até mesmo links.

-l [arquivo]

Lista o conteúdo de um arquivo compactado pelo bzip2.

-r

Compacta diretórios e sub-diretórios.

-c [arquivo]

Descompacta o arquivo para a saída padrão.

-t [arquivo]

Testa o arquivo compactado pelo bzip2.

-[num], --fast, --best

Ajustam a taxa de compactação/velocidade da compactação. Quanto melhor a taxa menor é a velocidade de compactação e vice versa. A opção --fast permite uma compactação rápida e tamanho do arquivo maior. A opção --best permite uma melhor compactação e uma velocidade menor.

O uso da opção -[número] permite especificar uma compactação individualmente usando números entre 1 (menor compactação) e 9 (melhor compactação). É útil para buscar um bom equilibro entre taxa de compactação/velocidade (especialmente em computadores muito lentos).

Quando um arquivo é compactado pelo bzip2, é automaticamente acrescentada a extensão .bz2 ao seu nome. As permissões de acesso dos arquivos são também armazenadas no arquivo compactado.

Exemplos:


18.8 rar

rar é um compactador desenvolvido por Eugene Roshal e possui versões para GNU/Linux, DOS, Windows, OS/2 e Macintosh. Trabalha com arquivos de extensão .rar e permite armazenar arquivos compactados em vários disquetes (múltiplos volumes). Se trata de um produto comercial, mas decidi coloca-lo aqui porque possui boas versões Shareware e pode ser muito útil em algumas situações.

rar [ações] [opções] [arquivo-destino.rar] [arquivos-origem]

Onde:

arquivo-destino.rar

É o nome do arquivo de destino

arquivos-origem

Arquivos que serão compactados. Podem ser usados curingas para especificar mais de um arquivo.

ações
a

Compacta arquivos

x

Descompacta arquivos

d

Apaga arquivos especificados

t

Verifica o arquivo compactado em busca de erros.

c

Inclui comentário no arquivo compactado

r

Repara um arquivo .rar danificado

l

Lista arquivos armazenados no arquivo compactado

u

Atualiza arquivos existentes no arquivo compactado.

m

Compacta e apaga os arquivos de origem (move).

e

Descompacta arquivos para o diretório atual

p

Mostra o conteúdo do arquivo na saída padrão

rr

Adiciona um registro de verificação no arquivo

s

Converte um arquivo .rar normal em arquivo auto-extráctil. Arquivos auto-extrácteis são úteis para enviar arquivos a pessoas que não tem o programa rar. Basta executar o arquivo e ele será automaticamente descompactado (usando o sistema operacional que foi criado). Note que esta opção requer que o arquivo default.sfx esteja presente no diretório home do usuário. Use o comando find para localiza-lo em seu sistema.

opções
o+

Substitui arquivos já existentes sem perguntar

o-

Não substitui arquivos existentes

sfx

Cria arquivos auto-extrácteis. Arquivos auto-extrácteis são úteis para enviar arquivos a pessoas que não tem o programa rar. Basta executar o arquivo e ele será automaticamente descompactado. Note que este processo requer que o arquivo default.sfx esteja presente no diretório home do usuário. Use o comando find para localiza-lo em seu sistema.

y

Assume sim para todas as perguntas

r

Inclui sub-diretórios no arquivo compactado

x [ARQUIVO]

Processa tudo menos o [ARQUIVO]. Pode ser usados curingas

v[TAMANHO]

Cria arquivos com um limite de tamanho. Por padrão, o tamanho é especificado em bytes, mas o número pode ser seguido de k (kilobytes) ou m(megabytes).

Exemplo: rar a -v1440k ... ou rar a -v10m ...

p [SENHA]

Inclui senha no arquivo. CUIDADO, pessoas conectadas em seu sistema podem capturar a linha de comando facilmente e descobrir sua senha.

m [0-5]

Ajusta a taxa de compactação/velocidade de compactação. 0 não faz compactação alguma (mais rápido) somente armazena os arquivos, 5 é o nível que usa mais compactação (mais lento).

ed

Não inclui diretórios vazios no arquivo

isnd

Ativa emissão de sons de alerta pelo programa

ierr

Envia mensagens de erro para stderr

inul

Desativa todas as mensagens

ow

Salva o dono e grupo dos arquivos.

ol

Salva links simbólicos no arquivo ao invés do arquivo físico que o link faz referência.

mm[f]

Usa um método especial de compactação para arquivos multimídia (sons, vídeos, etc). Caso for usado mmf, força o uso do método multimídia mesmo que o arquivo compactado não seja deste tipo.

Os arquivos gerados pelo rar do GNU/Linux podem ser usados em outros sistemas operacionais, basta ter o rar instalado. Quando é usada a opção -v para a criação de múltiplos volumes, a numeração dos arquivos é feita na forma: arquivo.rar, arquivo.r00, arquivo.r01, etc, durante a descompactação os arquivos serão pedidos em ordem. Se você receber a mensagem cannot modify volume durante a criação de um arquivo .rar, provavelmente o arquivo já existe. Apague o arquivo existente e tente novamente.

Exemplos:


[ anterior ] [ Conteúdo ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ 18 ] [ 19 ] [ 20 ] [ 21 ] [ 22 ] [ 23 ] [ 24 ] [ 25 ] [ 26 ] [ 27 ] [ 28 ] [ 29 ] [ 30 ] [ 31 ] [ 32 ] [ próximo ]


Guia Foca GNU/Linux

Versão 5.65 - domingo, 05 de setembro de 2010

Gleydson Mazioli da Silva gleydson@guiafoca.org