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