Вы находитесь на странице: 1из 15

APOSTILA

PETROBRÁS
ANALISTA DE SISTEMAS –
INFRA-ESTRUTURA

PETROBRÁS 2008
COMPACTADORES
Índice

1. O QUE É COMPACTAÇÃO DE ARQUIVOS ...................................................... 2

2. PKZIP E PKUNZIP.............................................................................................. 3

2.1 Arquivo Auto Descompactável.............................................................................................................10

3. ARJ ................................................................................................................... 10

4. LHA ................................................................................................................... 13

5. O QUE VOCÊ PODE ESPERAR EM TERMOS DE ECONOMIA DE ESPAÇO 13

1
1. O que é compactação de Arquivos
Nos primórdios da era da microinformática, muito podia ser feito com pouca
quantidade de memória. Os programas eram simples, compactos e tinham uma
apresentação bem modesta. Gráficos não eram utilizados. Em caso de erro na execução,
surgiam mensagens como “ERROR 25”. O usuário deveria procurar no manual qual é o
significado do ERRO 25, para tentar saná-lo. HELP para programas era coisa que não
existia. A memória era caríssima, assim como os meios de armazenamento de dados.
Nos últimos 20 anos os computadores ficaram mais baratos e poderosos. Sua velocidade
ficou 100 vezes maior. A memória ficou 200 vezes mais barata e mais compacta. Os
winchesters aumentaram na capacidade e diminuíram no preço, de modo que hoje o
custo para armazenamento de 1 MB ficou 200 vezes menor do que era em 1982. Com
todos esses novos recursos, os programas ficaram mais sofisticados, com apresentação
melhor, usando gráficos e HELP ON LINE. Em conseqüência ficaram também muito
maiores. Os programas atuais possuem muita informação redundante, instruções
similares, trechos parecidos. A compactação consiste em armazenar os dados de forma
que a informação redundante ocupe menos espaço. Considere por exemplo uma linha
que faça parte de um arquivo de texto com uma seqüência de 40 caracteres:

****************************************
Para armazenar essa informação são usados 40 bytes, já que cada caracter ocupa 1
byte. Essa mesma informação pode ser armazenada de outra forma:

40,”*”

Ë armazenado apenas o número 40 e o caracter “**”, o que ocupa apenas 2 bytes.


A informação ficou 20 vezes mais compacta. É claro que a coisa não é tão simples
assim. O exemplo apresentado está bem simplificado para dar um idéia de como os
dados podem ser compactados. Diversos programas utilizam as mais variadas técnicas
para compactar dados. Nesse capítulo não estudaremos quais essas técnicas.
Mostraremos quais são os principais programas compactadores e veremos como utilizá-
los.
A figura 1 ilustra o processo de Compactação e da Descompactação de um
arquivo . Um arquivo original de nome ARQUIVO.ORI é lido pelo programa compactador
e seus dados são compactados. O Programa compactador grava esses dados
compactados no arquivo de nome ARQUIVO.PAK. Normalmente o arquivo original é
mantido pelo programa compactador. O usuário pode apagar o original e ficar só com a
versão compactada. O índice de compactação depende muito do tipo de dado existente
no arquivo original. Arquivos de texto podem ser tipicamente reduzidos a cerca de 1/3 do
seu tamanho original

PROGRAMA
ARQUIVO.ORI COMPACTADOR ARQUIVO.PAK

54 KB 22 KB

Figura A - Processo de compactação

2
Com o uso de um programa descompactador o processo pode ser revertido, ou
seja, partindo do arquivo do arquivo compactado obter o arquivo original. Normalmente a
descompactação é necessária pois o arquivo compactado não pode ser manipulado de
forma convencional. Por exemplo, um arquivo texto, gerado por um editor qualquer uma
vez compactado não pode ser editado. Na figura 2, se o ARQUIVO.ORI é um texto,
poderá ser editado normalmente, mas o ARQUIVO.PAK não. É claro que se alguma
alteração for feita no arquivo original ARQUIVO.ORI sua versão compactada estará
desatualizada. O Objetivo da compactação é a economia de espaço. Quem compacta um
arquivo em um winchester e o mantém no mesmo, certamente terá interesse em apagar
o original, guardando apenas a versão compactada. Outra aplicação é o transporte de
programas em disquetes. Um arquivo Kb não cabe em um disquete de 360 Kb, mas se
for compactado, provavelmente caberá. A descompactação é sempre necessária quando
alguém recebe um disquete com arquivos compactados, certamente precisará
descompactá-los para que os mesmos possam ser utilizados. Quem compacta arquivos
para economizar espaço em um winchester, apagando os originais, certamente precisará
descompactá-los quando os mesmos forem novamente utilizados.

PROGRAMA
ARQUIVO.PAK DESCOMPACTADOR ARQUIVO.ORI

22 KB 54 KB

Figura B - Processo de Descompactação


Cada programa compactador possui seu descompactador correspondente. É claro
que ambos fazem parte do mesmo pacote. Muitas vezes um único programa faz as duas
operações, dependendo da forma como é chamado. Podem ser também compactados
conjuntos de programas, sendo gerado um único arquivo com todos eles compactados. O
descompactador nesse caso lê o arquivo compactado e recria todos os arquivos originais.
Muitas vezes é possível compactar diretórios inteiros, com todos os seus arquivos.
Existem também os compactadores de arquivos executáveis. Geram arquivos
executáveis compactados. Ao serem chamados, esses arquivos se descompactam
automaticamente. Existem também a compactação de um winchester inteiro, de forma
transparente ao usuário, que é feita pelo programa STACKER. Passemos agora a
estudar alguns dos mais famosos pacotes de compactadores.

2. PKZIP E PKUNZIP
O PKZIP é um dos mais populares compactadores. Trata-se de um programa de
SHAREWARE. Sua operação é fácil e qualquer usuário pode, em poucos minutos,
aprender a utilizar seus principais recursos. Vejamos a seguir alguns exemplos da
simplicidade do seu uso. No exemplo, usamos o arquivo DICAS.002, que é o capítulo 2
do livro que estou escrevendo. Seu tamanho atual é 100.096 bytes. Usa-se o PKZIP da
seguinte forma:

PKZIP CAP2COMP DICAS.002


Nome do arquivo a ser compactado

Nome que terá o arquivo compactado


3
O primeiro parâmetro é o nome que o PKZIP dará ao arquivo, depois de compactado. A
extensão usada é “ZIP” (CAP2COMP.ZIP). O segundo parâmetro é o nome do arquivo
original. É importante lembrar que o original não será apagado. A figura 3 ilustra a
operação do PKZIP

PKZIP (R) FAST! Create/Update Utility Version 1.1 03-15-90


Copr. 1990 PKWARE Inc. All Rights Reserved. PKZIP/h for help
PKZIP Reg. U.S. Pat. and Tm Off.
Creating ZIP: CAP2COMP.ZIP
Updating: DICAS.002 imploding (72%), done.

Figura C - Compactação de um arquivo com o PKZIP

O arquivo compactado ficou com 28.743 bytes, ou seja, 28% do seu tamanho original do
seu tamanho original, o que representa uma redução de 72%. Para descompactar usa-
se o PKUNZIP:

PKUNZIP CAP2COMP

O programa PKUNZIP lerá o arquivo CAP2COMP.ZIP e verificará que o mesmo contém


a forma compactada do arquivo DICAS.002. Não informamos ao PKUNZIP o nome do
arquivo original, pois ele mesmo descobre. Será mostrada a tela indicada na figura 4.
Ao descompactar, caso já exista um arquivo com o mesmo nome. o PKUNZIP colocará
na tela a seguinte mensagem:

PKUNZIP:Warning!file DICAS.002 already exists.Overwrite(y/n)?

Caso o usuário responda “Y”, o arquivo original será removido e substituído pelo que
estava compactado.

PKUNZIP (R)FAST! Extract Utility Version 1.1 03-15-90


Copr. 1990 PKWARE Inc. All Rights Reserved. PKUNZIP/h for help
PKUNZIP Reg. U.S. Pat. and Tm Off.

Searching ZIP: CAP2COMP.ZIP


Exploding: DICAS.002

Figura D - Descompactação com o PKUNZIP

4
O PKZIP pode também ser usado para compactar grupos de arquivos. Por exemplo,
suponha que desejamos compactar todos os capítulos deste livro. No momentos esses
arquivos têm os seguintes tamanhos:

5
DICAS 000 12032 06-30-97 12:03p
DICAS 001 41856 06-30-97 12:02p
DICAS 002 00096 06-30-97 8:28p
DICAS 003 59520 07-05-97 12:05a
DICAS 004 27520 07-05-97 12:06a
DICAS 005 21888 07-05-97 12:42p
DICAS 006 12288 07-05-97 2:22p
DICAS IND 6528 07-04-97 2:52p

Usamos o PKZIP da seguinte forma:

PKZIP DICAS DICAS.*

Serão compactados todos os arquivos acima

Será gerado o arquivo DICAS.ZIP

A operação do PKZIP na compactação desse grupo de arquivos pode ser vista na figura
5. Observe que cada arquivo tem um índice de compactação diferente, o que é normal,
pois esse índice depende da quantidade de informação redundante no arquivo.
A figura 6 mostra o processo de descompactação do arquivo DICAS.ZIP com o
programa PKUNZIP, o que deve ser chamado da seguinte forma:

PKUNZIP DICAS

PKZIP (R) FAST! Create/Update Utility Version 2.04g 02-01-93


Copr. 1989-1993 PKWARE Inc. All Rights Reserved. Shareware Version
PKZIP Reg. U.S. Pat. and Tm. Off. Patent No. 5,051,745

_ 80486 CPU detected.


_ EMS version 4.00 detected.
_ XMS version 2.00 detected.
_ DPMI version 0.90 detected.
_ Using Normal Compression.

Creating ZIP: DICAS.ZIP


Adding: DICAS.002 imploding % (72%), done.
Adding: DICAS.000 imploding % (58%), done.
Adding: DICAS.001 imploding % (69%), done.
Adding: DICAS.IND imploding % (62%), done.
Adding: DICAS.006 imploding % (69%), done.
Adding: DICAS.003 imploding % (70%), done.
Adding: DICAS.005 imploding % (70%), done.
Adding: DICAS.004 imploding % (66%), done.

Figura E - Compactação de vários arquivos com o PKZIP

6
PKUNZIP (R) FAST! Extract Utility Version 2.04g 02-01-93
Copr. 1989-1993 PKWARE Inc. All Rights Reserved. Shareware Version
PKUNZIP Reg. U.S. Pat. and Tm. Off.

_ 80486 CPU detected.


_ EMS version 4.00 detected.
_ XMS version 2.00 detected.
_ DPMI version 0.90 detected.

Searching ZIP: DICAS.ZIP


Exploding: DICAS.002
Exploding: DICAS.000
Exploding: DICAS.001
Exploding: DICAS.IND
Exploding: DICAS.006
Exploding: DICAS.003
Exploding: DICAS.005
Exploding: DICAS.004

Figura F - Descompactação de vários arquivos com o PKUNZIP

Outras formas de usar o PKZIP e PKUNZIP

Os programas PKZIP e PKUNZIP são distribuídos pelo sistema SHAREWARE.


No seu pacote existem outros utilitários interessantes, assim como um excelente manual
explicativo de todos os seus comandos. Apresentaremos a seguir algumas “receitas” que
mostram apenas uma pequena parte do potencial desses programa. Mesmo com essas
“receitas”, aconselhamos a aquisição do pacote completo para que mais detalhes
possam ser observados no seu manual. Nessa discussão chamaremos de ZIPFILE,
qualquer arquivo compactado gerado pelo PKZIP. Usaremos como exemplo o arquivo
DICAS.ZIP.

a) Como visualizar os arquivos armazenados em um ZIPFILE.


Use o PKZIP na forma
PKZIP DICAS -v
Ao ser executado com o parâmetro -v, o PKZIP apresentará um relatório como o
indicado a seguir:

7
PKZIP (R) FAST! Create/Update Utility Version 2.04g 02-01-93
Copr. 1989-1993 PKWARE Inc. All Rights Reserved. Shareware Version
PKZIP Reg. U.S. Pat. and Tm. Off. Patent No. 5,051,745

_ 80486 CPU detected.


_ EMS version 4.00 detected.
_ XMS version 2.00 detected.
_ DPMI version 0.90 detected.

Searching ZIP: DICAS.ZIP

Length Method Size Ratio Date Time CRC-32 Attr Name


100096 DeflatN 28627 72% 06-30-92 20:28 4dc6b198 --w DICAS.002
12032 DeflatN 5124 58% 06-30-92 12:03 711204f4 --w DICAS.000
41856 DeflatN 13160 69% 06-30-92 12:02 afbd0086 --w DICAS.001
6528 DeflatN 2496 62% 07-04-92 14:52 947f7b70 --w DICAS.IND
12288 DeflatN 3844 69% 07-05-92 14:22 d657596f --w DICAS.006
59520 DeflatN 18363 70% 07-05-92 00:05 fa02e4ea --w DICAS.003
21888 DeflatN 6590 70% 07-05-92 12:42 17ceec18 --w DICAS.005
27520 DeflatN 9468 66% 07-05-92 00:06 bf2633fd --w DICAS.004
------ ----- --- ---------
281728 87672 69% 8

b) Como descompactar arquivos selecionados de um ZIPFILE.


Digamos que queremos extrair apenas o arquivo DICAS.006. Usamos o PKUNZIP
na forma:
PKUNZIP DICAS DICAS.006

c) Como adicionar comentários em arquivos compactados.


Para colocar comentários em arquivos compactados, usamos:
PKZIP DICAS -c

Dessa forma, o PKZIP pedirá que você digite um comentário para cada um dos arquivos
compactados no arquivo DICAS.ZIP. Esses comentários podem ser vistos com o
comando:

PKZIP DICAS -vc

d) Como adicionar comentário a um ZIPFILE.


O comentário não é para os arquivos contidos no ZIPFILE, e sim para o próprio
ZIPFILE. Esse comentário pode ser apenas uma linha ou uma seqüência de linhas que é
mostrada na tela durante a descompactação ou com os comandos para visualizar os
arquivos descritos nos itens “A” e “C” acima. Para adicionar o comentário a um ZIPFILE
já existente, usa-se:
PKZIP DICAS -z

8
Ao ser chamado dessa forma, PKZIP pedirá que você digite o comentário a ser
adicionado. Ao invés de digitar, você poderá preparar o comentário em um arquivo (EX.:
COMENT.TXT) e usar o PKZIP na forma:

PKZIP DICAS -z < COMENT.TXT

Assim o PKZIP lerá o comentário, que pode ser composto de várias linhas, do arquivo
COMENT.TXT ao invés de ler do teclado.

e) Como proteger o ZIPFILE com uma senha.


Digamos que queremos colocar no ZIPFILE uma senha que faz com que apenas
quem a sabe possa descompactá-lo. Por exemplo, usemos como senha a palavra
“PCAT686”. Usa-se o PKZIP na forma:

PKZIP DICAS DICAS.* -SPCAT686

Senha
Arquivos a serem compactados
Nome do arquivo gerado

Esse arquivo só poderá ser descompactado se usado na forma:


PKUNZIP DICAS -SPCAT686

Cuidado: O PKUNZIP faz distinção entre letras maiúsculas e minúsculas nas senhas
usadas.

f) Como compactar diretórios.


Muitas vezes é necessário compactar um diretório inteiro, com seus arquivos e
subdiretórios, que por sua vez também podem ter outros arquivos e outros subdiretórios,
O ZIPFILE gerado conterá não apenas arquivos, mas uma completa estrutura de
diretórios. Ao descompactar esse ZIPFILE, o programa PKUNZIP reconstituirá toda essa
estrutura. Se você acha complicado é porque ainda não precisou usar algo semelhante.
Mas se você já passou por esse problema, certamente achará muito útil essa capacidade
do PKZIP e PKUNZIP. Considere como exemplo a estrutura de diretórios abaixo, onde
mantenho os meus livros:

C:\LIVRO MONTAGEM 10
20
30
MANUT
ARQUIT
DICAS
DOS5
EXPANSÃO

9
O diretório C:\LIVRO possui diversos arquivos e ainda 6 subdiretórios, cada um deles
com seus próprios arquivos. Por enquanto todos eles ainda cabem compactados em um
disquete de 1.44 MB. Para fazer um BACKUP de todos eles, uso o PKZIP da forma:

PKZIP -rp B:BACKLIVR C:\LIVRO\*.*

Estrutura que será compactada


Arquivo BACKLIVR.ZIP será criado no drive “B”
Comando “-rp” indica para armazenar toda a estrutura do diretório \LIVRO gerado

Para descompactar basta usar:

PKUNZIP -d B:BACKLIVR C:\LIVRO

2.1 Arquivo Auto Descompactável


Junto com o pacote do PKZIP é também fornecido o utilitário ZIP2EXE. O que
esse programa faz é ler um ZIPFILE e gera um arquivo executável (.EXE). Quando esse
arquivo for executado, será realizada uma descompactação automática, sem a
necessidade de uso do PKUNZIP. Suponha o nosso DICAS.ZIP, cuja criação foi
mostrada na figura 5. Usa-se o ZIP2EXE da seguinte forma:

ZIP2EXE DICAS

O arquivo original DICAS.ZIP não será alterado. A partir deste será gerado o arquivo
DICAS.EXE. Quando esse arquivo for executado, ocorrerá uma descompactação
automática, análoga àquela feita pelo PKUNZIP.

3. ARJ
Arj é um outro famoso programa compactador e descompactador. Trata-se de um
programa de SHAREWARE, distribuído juntamente como alguns utilitários, como o
REARJ, que faz a conversão entre diversos formatos de arquivos compactados. Cabe
aqui uma importante observação. Cada programa compactador utiliza um método próprio
para compactar arquivos, e em conseqüência, seus arquivos gerados não são
compatíveis entre si. O PKZIP gera arquivos do tipo .ZIP, que não podem ser
descompactados com o ARJ. O ARJ gera arquivos do tipo .ARJ, incompatível com o
PKZIP. O mesmo ocorre com outros compactadores.
ARJ é um compactador poderoso. Possui um extenso manual e uma série de
comandos. Pode até mesmo ser usado para fazer BACKUP compactado de winchester.
A princípio o ARJ assusta o usuário, pelo seu grande número de opções de
funcionamento. Realmente o PKZIP é de utilização mais fácil (e também um pouco mais
restrita). Para o usuário principiante, dificilmente serão aproveitadas todas as

10
potencialidades do ARJ. Sugere-se nesse caso a utilização do PKZIP. Entretanto, mesmo
o iniciante encontrará situações em que é necessário fazer a descompactação de
arquivos gerados pelo ARJ, que são aqueles que têm sufixo “.ARJ”. Vejamos através de
exemplos, alguns comandos do ARJ. O mesmo programa ARJ.EXE é usado para
compactar, descompactar e para criar arquivos auto descompactáveis. Considere ainda
que estamos operando com os mesmo arquivos DICAS.000, DICAS.001, etc. usados na
figura 5.

A) ARJ A DICOMP DICAS.*

Arquivos a serem compactados


Nome do arquivo criado: DICOMP.ARJ
Comando para compactar

Os arquivos DICAS.000, DICAS.001, etc. serão compactados no arquivo DICOMP.ARJ

B) ARJ E DICOMP
Arquivo a ser descompactado: DICOMP.ARJ
Comando para descompactar

Os arquivos presentes em DICOMP.ARJ serão descompactados.

C) ARJ A B:DICOMP DICAS.*


Análogo ao exemplo “A”, exceto que o arquivo DICOMP.ARJ será criado no drive “B:”.

D) ARJ E B:DICOMP C:\BBS


Análogo ao exemplo “B”, exceto que o arquivo DICOMP.ARJ será lido do drive “B:” e os
arquivos descompactados serão colocados no diretório \BBS, do drive “C:”.

E) ARJ L DICOMP

Arquivo a ser lido: DICOMP.ARJ


Comando para listar o conteúdo

Não será realizada nenhuma compactação nem descompactação. Será


apresentada na tela uma lista dos arquivos compactados em DICOMP.ARJ. A lista terá o
seguinte aspecto:

ARJ 2.50a SHAREWARE Copyright (c) 1990-95 ARJ Software. Dec 12 1995
*** This SHAREWARE program is NOT REGISTERED for use in a business, commercial,
*** government, or institutional environment except for evaluation purposes.

Processing archive: DICOMP.ARJ


Archive created: 1997-02-13 09:54:22, modified: 1997-02-13 09:54:22
Filename Original Compressed Ratio DateTime modified CRC-32 AttrBTPMGVX
------------ ---------- ---------- ----- ----------------- -------- -----------
DICAS.002 100096 26795 0.268 97-02-11 08:00:13 4DC6B198 A--W B 1
DICAS.000 12032 4962 0.412 97-02-12 09:01:23 711204F4 A--W B 1
DICAS.001 41856 12537 0.300 97-02-13 10:02:33 AFBD0086 A--W B 1
DICAS.IND 6528 2351 0.360 97-02-14 11:03:43 947F7B70 A--W B 1
DICAS.006 25088 7281 0.290 97-02-15 12:04:53 83146801 A--W B111
DICAS.003 59520 17131 0.288 97-02-16 13:05:03 FA02E4EA A--W B 1
DICAS.005 21888 6308 0.288 97-02-17 14:06:31 17CEEC18 A--W B 1
DICAS.004 27520 8884 0.323 97-02-18 15:07:21 BF2633FD A--W B 1
------------ ---------- ---------- -----
Assim será possível fazer uma descompactação seletiva. Usar o Arj com a opção “L” é o
mesmo que usar o PKZIP com a opção “-v”, como explicado anteriormente

F) ARJ E DICOMP DICAS.002

Arquivo que será descompactados


Arquivo de onde será extraído o DICAS.002
Comando para Descompactação (ou extração)

Apenas o arquivo DICAS.002 será descompactado do DICOMP.ARJ.

G) ARJ A -JE DICOMP DICAS.*


Arquivo a serem compactados
Arquivo que será criado: DICOMP.EXE
Comando para criar .EXE auto descompactável
Comando de Compactção

O comando “A -JE” é usado para criar um arquivo .EXE auto-descompactável. Ao


invés de ser criado um arquivo DICOMP.ARJ, será criado um arquivo DICOMP.EXE,
que, se for executado, gerará os arquivos originais DICAS.*, sem a necessidade do uso
do ARJ. Esse comando tem a mesma função que o ZIP2EXE, pertence ao pacote do
PKZIP.

H) ARJ A -R B:COPLIVRO C:\LIVRO\*.*

Arquivo a serem compactados


Será gerado o arquivo COPLIVRO.ARJ
Indica para usar também os subdiretórios de \LIVRO
Comando de Compactção

Quando usado na forma acima, ARJ criará no drive “B” um arquivo de nome
COPLIVRO.ARJ que contém compactados todos os arquivos do diretório \LIVROS, bem
como seus subdiretórios e os arquivos neles contidos. Ou seja, nesse processo de

12
compactação a estrutura de diretórios é mantida. Para descompactar esse arquivo, o
ARJ deve ser usado da forma:

ARJ X B:COPLIVRO C:\

Se o disquete com o arquivo COPLIVRO.ARJ for transportado para outro


computador e descompactado como indicado acima, o ARJ criará no drive “C” desse
computador a mesma estrutura de diretórios existente em \LIVROS do computador
original. Se esse arquivo for descompactado no drive “C” original, todos os arquivos
serão recolocados exatamente onde estavam. Essa é uma forma de fazer BACKUP
compactado.

4. LHA
Este é o compactador e descompactador de arquivos tipo .LHZ. Sua utilização é
muito parecida com a do ARJ. Na verdade. o programa ARJ foi inspirado no LHA original.
Alguns exemplos de sua utilização são mostrados a seguir.

A) LHA A DICOMP DICAS.*

Cria o arquivo DICOMP.LHZ, resultante da compactação dos arquivos DICAS.*


existentes no diretório corrente.

B) LHA E DICOMP C:\

Descompacta os arquivos existentes em DICOMP.LHZ, colocando-os no drive “B”.

C) LHA L DICOMP

Mostra a lista dos arquivos compactados em DICOMP.LHZ.

5. O que você pode esperar em termos de economia de espaço


Dependendo do tipo de arquivo, o índice de compactação obtido pode ser muito
grande. Textos normalmente são reduzidos a cerca de 40% do seu tamanho original. Se
tiverem muitas linhas com caracteres repetidos o resultado pode ser ainda melhor.
Programas executáveis ficam em média com 70% do seu tamanho. Se um programa
executável possuir muitas mensagens embutidas, pode ficar com até 50% do tamanho
original. Arquivos gráficos normalmente não podem ser muito compactados. Alguém
pode se considerar feliz se conseguir reduzir um arquivo gráfico a 80% do tamanho
original. Isso é por que os diversos gráficos já utilizam normalmente suas próprias
técnicas de compressão.

13
14

Вам также может понравиться