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.
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:
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.
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:
.gz - Arquivo compactado pelo gzip. Use o programa
gzip para descompacta-lo (para detalhes veja gzip, Section 18.3). .bz2 -
Arquivo compactado pelo bzip2. Use o programa bzip2
para descompacta-lo (para detalhes veja bzip2, Section 18.7).
.Z - Arquivo compactado pelo programa compress. Use
o programa uncompress para descompacta-lo.
.zip - Arquivo compactado pelo programa zip. Use o
programa unzip para descompacta-lo.
.rar - Arquivo compactado pelo programa rar. Use o
programa rar para descompacta-lo.
.tar.gz - Arquivo compactado pelo programa gzip no
utilitário de arquivamento tar. Para descompacta-lo, você pode
usar o gzip e depois o tar ou somente o programa
tar usando a opção -z. Para detalhes veja gzip, Section 18.3 e tar, Section 18.6.
.tgz - Abreviação de .tar.gz.
.tar.bz2 - Arquivo compactado pelo programa bzip2 no
utilitário de arquivamento tar. Para descompacta-lo, você pode
usar o bzip2 e depois o tar ou somente o programa
tar usando a opção -j. Para detalhes veja bzip2, Section 18.7 e tar, Section 18.6.
.tar.Z - Arquivo compactado pelo programa compress no
utilitário de arquivamento tar. Para descompacta-lo, você pode
usar o uncompress e depois o tar ou somente o
programa tar usando a opção -Z. Para detalhes veja
tar, Section 18.6.
É 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:
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, Section 2.3).
gzip.
gzip.
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:
texto.txt
usando a compactação máxima (compare o tamanho do arquivo compactado usando o
comando ls -la).
texto.txt
texto.txt para a tela
.txt
texto.txt.gz.
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:
.zip através de senha.
A senha será pedida no momento da compactação.
.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.
.zip danificado.
.zip. Caso sejam detectados
problemas, utilize a opção -F para corrigi-los.
.zip. Por padrão, os links
simbólicos são ignorados durante a compactação.
pkzip do
DOS.
UNIX (LF) para o formato CR+LF (usados
pelo DOS). Use esta opção com arquivos Texto.
DOS (CR+LF) para o formato
UNIX (LF). Use esta opção com arquivos texto.
.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.
.zip
.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:
.txt para o arquivo textos.zip (compare o tamanho do
arquivo compactado digitando ls -la).
.txt do diretório /usr e sub-diretórios para
o arquivo textos.zip.
textos.zip.
textos.zip
contém erros.
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:
.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.
.zip.
more).
.zip usando a [SENHA]. CUIDADO!
qualquer usuário conectado em seu sistema pode ver a senha digitada na linha de
comando digitada.
.zip em busca de erros.
unzip.
Por padrão o unzip também descompacta sub-diretórios caso o
arquivo .zip tenha sido gerado com zip -r.
Exemplos:
texto.zip no diretório atual.
carta.txt do arquivo texto.zip.
texto.zip para o diretório /tmp/texto.
texto.zip.
texto.zip.
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:
.tar caso seja usado somente o arquivamento ou
.tar.gz/.tgz caso seja usada a compactação (usando a
opção -z).
.tar
.tar
.tar
/dev/rmt0.
bzip2 para processar os arquivos do
tar
tar foi executado.
tar.
tar em cada
mensagem.
tar.
tar após grava-lo.
tar
.tar.
compress durante o processamento dos arquivos.
gzip durante o processamento dos arquivos.
A extensão precisa ser especificada no arquivo de destino para a identificação correta:
tar precisam ter a extensão
.tar
.tar.bz2
.tar.gz ou .tgz
.tar.Z ou .tgZ
É 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,
Section 18.2).
Exemplos:
index.txt.tar que armazenará o arquivo index.txt.
Você pode notar digitando ls -la que o arquivo
index.txt foi somente arquivado (sem compactação), isto é útil
para juntar diversos arquivos em um só.
index.txt criado pelo comando acima.
gzip). Você agora pode notar
digitando ls -la que o arquivo index.txt foi
compactado e depois arquivado no arquivo index.txt.tar.gz (você
também pode chama-lo de index.txt.tgz que também identifica um
arquivo .tar compactado pelo gzip)
index.txt.tar.gz criado com o comando acima.
index.txt.tar.gz e envia a saída do arquivo descompactado para o
tar que desarquivará o arquivo index.txt.
index.txt em index.txt.tar.bz2 compactando através do
bzip2 (opção -j).
index.txt.tar.bz2 criado com o comando acima.
index.txt.tar.bz2 e envia a saída do arquivo descompactado para o
tar que desarquivará o arquivo index.txt.
.tar.
.tar.gz.
É 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:
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, Section 2.3).
bzip2.
bzip2.
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:
texto.txt
usando a compactação máxima (compare o tamanho do arquivo compactado usando o
comando ls -la).
texto.txt
texto.txt para a saída padrão (tela)
.txt
texto.txt.bz2.
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:
.rar danificado
.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.
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.
Exemplo: rar a -v1440k ... ou rar a -v10m ...
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:
texto.txt em um arquivo com o nome texto.rar
texto.rar
textos.rar. Note que o tamanho máximo de cada arquivo é 1440 para
ser possível grava-lo em partes para disquetes.
rar fizer.
textos.rar
possui erros.
.rar danificado.
Guia Foca GNU/Linux
Versão 5.20 - Sunday, 03 de November de 2002gleydson@cipsga.org.br