unzip - lista, testa e extrai arquivos compactados em um arquivo ZIP
SINTAXE
unzip [-Z] [-cflptTuvz[abjnoqsCDKLMUVWX$/:^]] arquivo[.zip] [arquivo(s) ...] [-x arquivo(s) ...]
[-d diretorio_de_extracao]
DESCRIÇÃO
unzip irá listar, testar ou extrair arquivos de um arquivo ZIP, comumente encontrados em sistemas MS-DOS.
O comportamento padrão (sem opções) é extrair para o diretório atual (e subdiretórios abaixo dele) todos os arquivos do arquivo ZIP especificado. Um programa complementar, zip(1), cria arquivos ZIP; ambos os programas são compatíveis com arquivos criados pelo PKWARE's PKZIP e PKUNZIP para MS-DOS, mas em muitos casos as opções ou comportamentos padrão dos programas são diferentes.
ARGUMENTOS
arquivo[.zip]
Caminho do(s) arquivo(s) ZIP. Se a especificação do arquivo for um curinga, cada arquivo correspondente será processado em uma ordem determinada pelo sistema operacional (ou sistema de arquivos). Apenas o nome do arquivo pode ser um curinga; o caminho em si não pode. As expressões de curinga são semelhantes às suportadas em shells Unix comuns (sh, ksh, csh) e podem conter:
* corresponde a uma sequência de 0 ou mais caracteres
? corresponde a exatamente 1 caractere
[...] corresponde a qualquer caractere único encontrado dentro dos colchetes; os intervalos são especificados por um
caractere inicial, um hífen e um caractere final. Se um ponto de exclamação ou
um acento circunflexo (`!' ou `^') seguir o colchete esquerdo, o intervalo de caracteres dentro
dos colchetes é complementado (ou seja, qualquer coisa, exceto os caracteres dentro do
colchetes, é considerada uma correspondência). Para especificar um colchete esquerdo literal, a sequência de três
caracteres ``[[]'' deve ser usada.
(Certifique-se de citar qualquer caractere que possa ser interpretado ou modificado pelo sistema operacional, especialmente no Unix e VMS.) Se nenhuma correspondência for encontrada, a especificação é assumida como um nome de arquivo literal; e se isso também falhar, o sufixo .zip é anexado. Observe que arquivos ZIP autoextraíveis são suportados, como qualquer outro arquivo ZIP;
apenas especifique o sufixo .exe (se houver) explicitamente.
[arquivo(s)]
Uma lista opcional de membros de arquivo a serem processados, separados por espaços. (Versões VMS compiladas com VMSCLI definido devem delimitar arquivos com vírgulas. Veja -v em OPÇÕES abaixo.) Expressões regulares (caracteres curinga) podem ser usadas para corresponder a vários membros; veja acima. Novamente, certifique-se de citar expressões que seriam expandidas ou modificadas pelo sistema operacional.
[-x arquivo(s)]
Uma lista opcional de membros de arquivo a serem excluídos do processamento. Como os caracteres curinga normalmente correspondem aos separadores de diretório (`/\'), esta opção pode ser usada para excluir quaisquer arquivos que estejam em subdiretórios. Por exemplo, ``unzip foo .[ch] -x /*'' extrairia todos os arquivos de código-fonte C no diretório principal, mas nenhum em qualquer subdiretório. Sem a opção -x, todos os arquivos de código-fonte C em todos os diretórios dentro do arquivo zip seriam extraídos.
[-d exdir]
Um diretório opcional para o qual extrair os arquivos. Por padrão, todos os arquivos e subdiretórios
são recriados no diretório atual; a opção -d permite a extração em um diretório arbitrário
(sempre assumindo que você tenha permissão para gravar no diretório). Esta opção não precisa
aparecer no final da linha de comando; também é aceita antes da especificação do arquivo zip,
imediatamente após a especificação do arquivo zip ou entre os arquivos e a opção -x. A opção
e o diretório podem ser concatenados sem nenhum espaço em branco entre eles, mas observe que
isso pode fazer com que o comportamento normal do shell seja suprimido. Em particular,
-d ~'' (til) é expandido pelos shells C Unix para o nome do diretório inicial do usuário, mas-d~'' é tratado como um subdiretório literal ``~'' do diretório atual.
OPÇÕES
Observe que, para oferecer suporte a hardware obsoleto, a tela de uso do unzip é limitada a 22 ou 23 linhas e, portanto, deve ser considerada apenas como um lembrete da sintaxe básica do unzip, em vez de uma lista exaustiva de todas as opções possíveis. A lista exaustiva é a seguinte:
-Z modo zipinfo(1). Se a primeira opção na linha de comando for -Z, as opções restantes serão
tratadas como opções zipinfo(1). Consulte a página de manual apropriada para obter uma descrição
dessas opções.
-A [OS/2, Unix DLL] imprime ajuda estendida para a interface de programação (API) da DLL.
-c extrai arquivos para stdout/tela (``CRT''). Esta opção é semelhante à opção -p, exceto
que o nome de cada arquivo é impresso à medida que é extraído, a opção -a é permitida e a
conversão ASCII-EBCDIC é executada automaticamente, quando apropriado. Esta opção não está
listada na tela de uso do unzip.
-f atualiza arquivos existentes, ou seja, extrai apenas os arquivos que já existem no disco e
que são mais recentes do que as cópias do disco. Por padrão, o unzip consulta antes de sobrescrever,
mas a opção -o pode ser usada para suprimir as consultas. Observe que, em muitos sistemas
operacionais, a variável de ambiente TZ deve ser definida corretamente para que -f e -u funcionem
corretamente (no Unix, a variável geralmente é definida automaticamente). As razões para isso
são um tanto sutis, mas têm a ver com as diferenças entre os horários dos arquivos no formato DOS
(sempre horário local) e os horários no formato Unix (sempre em GMT/UTC) e a necessidade de
comparar os dois. Um valor típico de TZ é ``PST8PDT'' (horário do Pacífico dos EUA com ajuste
automático para o horário de verão).
-l lista arquivos de arquivo (formato curto). Os nomes, tamanhos de arquivo descomprimidos e datas e horas de modificação dos arquivos especificados são impressos, juntamente com os totais para todos os arquivos especificados. Se o UnZip foi compilado com OS2_EAS definido, a opção -l também lista colunas para os tamanhos dos atributos estendidos OS/2 (EAs) e listas de controle de acesso OS/2 (ACLs) armazenados.
Além disso, o comentário do arquivo zip e os comentários individuais dos arquivos (se houver) são exibidos. Se um arquivo foi arquivado de um sistema de arquivos de maiúsculas e minúsculas (por exemplo, o antigo sistema de arquivos MS-DOS FAT) e a opção -L foi dada, o nome do arquivo é convertido para letras minúsculas e é precedido por um acento circunflexo (^).
-p extrai arquivos para o pipe (stdout). Apenas os dados do arquivo são enviados para stdout, e os arquivos são sempre extraídos em formato binário, como estão armazenados (sem conversões).
-t testa arquivos de arquivo. Esta opção extrai cada arquivo especificado na memória e compara o CRC (verificação de redundância cíclica, um somatório aprimorado) do arquivo expandido com o valor CRC original armazenado do arquivo.
-T [na maioria dos sistemas operacionais] define o timestamp do(s) arquivo(s) para o do arquivo mais recente em cada um. Isso corresponde à opção zip -go, exceto que pode ser usado em arquivos zip curinga (por exemplo, "unzip -T \*.zip") e é muito mais rápido.
-u atualiza arquivos existentes e cria novos, se necessário. Esta opção executa a mesma função da opção -f, extraindo (com consulta) arquivos que são mais recentes do que aqueles com o mesmo nome no disco e, além disso, extrai aqueles arquivos que não existem no disco. Veja -f acima para obter informações sobre como definir o fuso horário corretamente.
-v lista arquivos de arquivo (formato detalhado) ou mostra informações de versão de diagnóstico. Esta opção evoluiu e agora se comporta como uma opção e um modificador. Como uma opção, tem dois propósitos: quando um arquivo zip é especificado sem outras opções, -v lista arquivos de arquivo de forma detalhada, adicionando às informações básicas de -l o método de compactação, o tamanho compactado, a taxa de compactação e o CRC de 32 bits. Em contraste com a maioria dos utilitários concorrentes, o unzip remove os 12 bytes de cabeçalho adicionais das entradas criptografadas dos números de tamanho compactado. Portanto, os números de tamanho compactado e taxa de compactação são independentes do status de criptografia da entrada e mostram o desempenho de compactação correto. (O tamanho completo do fluxo de dados compactado criptografado para entradas de arquivo zip é relatado pelos relatórios mais detalhados do zipinfo(1), veja o manual separado.) Quando nenhum arquivo zip é especificado (ou seja, o comando completo é simplesmente "unzip -v"), uma tela de diagnóstico é impressa. Além do cabeçalho normal com a data de lançamento e a versão, o unzip lista o site FTP Info-ZIP e onde encontrar uma lista de outros sites FTP e não FTP; o sistema operacional de destino para o qual foi compilado, bem como (possivelmente) o hardware no qual foi compilado, o compilador e a versão usados e a data de compilação; quaisquer opções de compilação especiais que possam afetar a operação do programa (veja também DECRIPTAÇÃO abaixo); e quaisquer opções armazenadas em variáveis de ambiente que possam fazer o mesmo (veja OPÇÕES DE AMBIENTE abaixo). Como um modificador, funciona em conjunto com outras opções (por exemplo, -t) para produzir saídas mais detalhadas ou de depuração; isso ainda não foi totalmente implementado, mas será nas versões futuras.
-z exibe apenas o comentário do arquivo.
MODIFICADORES
-a converte arquivos de texto. Normalmente, todos os arquivos são extraídos exatamente como estão armazenados (como arquivos "binários"). A opção -a faz com que os arquivos identificados pelo zip como arquivos de texto (aqueles com o rótulo 't' nas listagens zipinfo, em vez de 'b') sejam automaticamente extraídos como tal, convertendo as quebras de linha, os caracteres de fim de arquivo e o conjunto de caracteres, conforme necessário. (Por exemplo, os arquivos Unix usam quebras de linha (LFs) para o fim da linha (EOL) e não têm um marcador de fim de arquivo (EOF); os Macintosh usam retornos de carro (CRs) para EOLs; e a maioria dos sistemas operacionais PC usa CR+LF para EOLs e control-Z para EOF. Além disso, os mainframes IBM e o Michigan Terminal System usam EBCDIC em vez do conjunto de caracteres ASCII mais comum, e o NT oferece suporte ao Unicode.) Observe que a identificação de arquivos de texto pelo zip não é perfeita; alguns arquivos "texto" podem, na verdade, ser binários e vice-versa. Portanto, o unzip imprime "[texto]" ou "[binário]" como uma verificação visual para cada arquivo que extrai ao usar a opção -a. A opção -aa força todos os arquivos a serem extraídos como texto, independentemente do suposto tipo de arquivo. No VMS, consulte também -S.
-b [geral] trata todos os arquivos como binários (sem conversões de texto). Este é um atalho para ---a.
-b [Tandem] força a criação de arquivos com o tipo de código de arquivo 180 ('C') ao extrair entradas Zip marcadas como "texto". (No Tandem, -a está habilitado por padrão, veja acima).
-b [VMS] converte automaticamente arquivos binários (veja -a acima) para o formato de registro de bloco fixo de 512 bytes. Dobrar a opção (-bb) força todos os arquivos a serem extraídos neste formato. Ao extrair para a saída padrão (opção -c ou -p em efeito), a conversão padrão dos delimitadores de registro de texto é desabilitada para arquivos binários (-b) ou para todos os arquivos (-bb).
-B [quando compilado com UNIXBACKUP definido] salva uma cópia de backup de cada arquivo substituído. O arquivo de backup recebe o nome do arquivo de destino com um til e, opcionalmente, um número de sequência exclusivo (até 5 dígitos) anexado. O número de sequência é aplicado sempre que outro arquivo com o nome original mais o til já existir. Quando usado em conjunto com a opção "substituir tudo" -o, os arquivos de backup numerados nunca são criados. Neste caso, todos os arquivos de backup são nomeados como o arquivo original com um til anexado, os arquivos de backup existentes são excluídos sem aviso. Este recurso funciona de forma semelhante ao comportamento padrão do [emacs]({filename}../../emacs)(1) em muitos locais.
Exemplo: a cópia antiga de "foo" é renomeada para "foo~".
Aviso: os usuários devem estar cientes de que a opção -B não impede a perda de dados existentes em todas as circunstâncias. Por exemplo, quando o unzip é executado no modo de substituição, um arquivo "foo~" existente é excluído antes que o unzip tente renomear "foo" para "foo~". Quando esta tentativa de renomeação falha (por causa de bloqueios de arquivos, privilégios insuficientes ou ...), a extração de "foo~" é cancelada, mas o arquivo de backup antigo já foi perdido. Um cenário semelhante ocorre quando o intervalo de números de sequência para arquivos de backup numerados é esgotado (99999 ou 65535 para sistemas de 16 bits). Neste caso, o arquivo de backup com o número de sequência máximo é excluído e substituído pela nova versão de backup sem aviso.
-C use correspondência que não diferencia maiúsculas e minúsculas para a seleção de entradas de arquivo da lista de padrões de seleção da linha de comando. A filosofia do unzip é "você obtém o que pede" (isso também é responsável pela mudança -L/-U; veja as opções relevantes abaixo). Como alguns sistemas de arquivos são totalmente sensíveis a maiúsculas e minúsculas (notavelmente aqueles sob o sistema operacional Unix) e porque tanto os arquivos ZIP quanto o unzip são portáveis entre plataformas, o comportamento padrão do unzip é corresponder nomes de arquivos curinga e literais de forma sensível a maiúsculas e minúsculas. Ou seja, especificar "makefile" na linha de comando corresponderá apenas a "makefile" no arquivo, não "Makefile" ou "MAKEFILE" (e da mesma forma para especificações de curinga). Como isso não corresponde ao comportamento de muitos outros sistemas/arquivos operacionais (por exemplo, OS/2 HPFS, que preserva letras maiúsculas e minúsculas, mas não é sensível a elas), a opção -C pode ser usada para forçar que todas as correspondências de nomes de arquivo não diferenciem maiúsculas e minúsculas. No exemplo acima, todos os três arquivos corresponderiam a "makefile" (ou "make*", ou similar). A opção -C afeta as especificações de arquivo na lista normal de arquivos e na lista de arquivos excluídos (xlist).
Observe que a opção -C não afeta a pesquisa do arquivo zip nem a correspondência de entradas de arquivo com arquivos existentes no caminho de extração. Em um sistema de arquivos que diferencia maiúsculas e minúsculas, o unzip nunca tentará substituir um arquivo "FOO" ao extrair uma entrada "foo"!
-D ignora a restauração de carimbos de data/hora para itens extraídos. Normalmente, o unzip tenta restaurar todas as metainformações para itens extraídos que são fornecidos no arquivo Zip (e que não exigem privilégios ou representem um risco de segurança). Ao especificar -D, o unzip é instruído a suprimir a restauração de carimbos de data/hora para diretórios criados explicitamente a partir de entradas de arquivo Zip. Esta opção se aplica apenas a portas que dão suporte à definição de carimbos de data/hora para diretórios (atualmente ATheOS, BeOS, MacOS, OS/2, Unix, VMS, Win32; para outras portas do unzip, -D não tem efeito). A opção duplicada -DD força a supressão da restauração de carimbos de data/hora para todas as entradas extraídas (arquivos e diretórios). Esta opção faz com que os carimbos de data/hora de todas as entradas extraídas sejam definidos para a hora atual.
No VMS, a configuração padrão para esta opção é -D para consistência com o comportamento do BACKUP: os carimbos de data/hora dos arquivos são restaurados, os carimbos de data/hora dos diretórios extraídos permanecem na hora atual. Para habilitar a restauração dos carimbos de data/hora dos diretórios, a opção negada --D deve ser especificada. No VMS, a opção -D desabilita a restauração de carimbos de data/hora para todos os itens de arquivo Zip extraídos. (Aqui, um único -D na linha de comando se combina com o -D padrão para fazer o que um -DD explícito faz em outros sistemas).
-E [Apenas MacOS] exibe o conteúdo do campo extra do MacOS durante a operação de restauração.
-F [Apenas Acorn] suprime a remoção da extensão de tipo de arquivo NFS dos nomes de arquivo armazenados.
-F [Sistemas não-Acorn que suportam nomes de arquivo longos com vírgulas embutidas e apenas se compilado
com ACORN_FTYPE_NFS definido] traduz as informações do tipo de arquivo do bloco extra do RISC OS da ACORN
em uma extensão de tipo de arquivo NFS e a anexa aos nomes dos arquivos extraídos. (Quando o nome do
arquivo armazenado parece já ter uma extensão de tipo de arquivo NFS anexada, ela é substituída pelas
informações do campo extra.)
-i [Apenas MacOS] ignora os nomes de arquivo armazenados nos campos extras do MacOS. Em vez disso, o
nome de arquivo mais compatível armazenado na parte genérica do cabeçalho da entrada é usado.
-j descarta os caminhos. A estrutura de diretórios do arquivo não é recriada; todos os arquivos são
depositados no diretório de extração (por padrão, o diretório atual).
-J [Apenas BeOS] descarta os atributos de arquivo. Os atributos de arquivo do BeOS não são restaurados,
apenas os dados do arquivo.
-J [Apenas MacOS] ignora os campos extras do MacOS. Todas as informações específicas do Macintosh são
ignorar. O fork de dados e o fork de recursos são restaurados como arquivos separados.
-K [Apenas AtheOS, BeOS, Unix] mantém os atributos de arquivo SUID/SGID/Tacky. Sem esta flag, esses
bits de atributo são limpos por razões de segurança.
-L converte para minúsculas qualquer nome de arquivo originário de um sistema operacional ou sistema de
arquivos que usa apenas letras maiúsculas. (Este era o comportamento padrão do unzip em versões anteriores
a 5.11; o novo comportamento padrão é idêntico ao comportamento antigo com a opção -U, que agora está
obsoleta e será removida em uma versão futura.) Dependendo do arquivador, os arquivos arquivados em sistemas
de arquivos com letras minúsculas e maiúsculas (VMS, MS-DOS FAT antigo, etc.) podem ser armazenados como
nomes com todas as letras maiúsculas; isso pode ser feio ou inconveniente ao extrair para um sistema de
arquivos que preserva maiúsculas e minúsculas, como o OS/2 HPFS, ou um sistema sensível a maiúsculas e
minúsculas, como o Unix. Por padrão, o unzip lista e extrai esses nomes de arquivo exatamente como estão
armazenados (exceto truncamento, conversão de caracteres não suportados, etc.); esta opção faz com que os
nomes de todos os arquivos de determinados sistemas sejam convertidos para minúsculas. A opção -LL força a
conversão de todos os nomes de arquivo para minúsculas, independentemente do sistema de arquivos de origem.
-M canaliza toda a saída por meio de um paginador interno semelhante ao comando Unix more(1). No final
de uma tela cheia de saída, o unzip pausa com um prompt "--More--"; a próxima tela pode ser visualizada
pressionando a tecla Enter (Return) ou a barra de espaço. O unzip pode ser encerrado pressionando a tecla
"q" e, em alguns sistemas, a tecla Enter/Return. Ao contrário do Unix more(1), não há capacidade de
pesquisa ou edição. Além disso, o unzip não percebe se as linhas longas são exibidas na borda da tela, o
que efetivamente resulta na impressão de duas ou mais linhas e na probabilidade de que algum texto role para
fora da parte superior da tela antes de ser visualizado. Em alguns sistemas, o número de linhas disponíveis
na tela não é detectado, caso em que o unzip assume que a altura é de 24 linhas.
-n nunca sobrescrever arquivos existentes. Se um arquivo já existir, pule a extração desse
arquivo sem solicitar confirmação. Por padrão, o unzip consulta antes de extrair qualquer arquivo que já exista; o usuário pode optar por sobrescrever apenas o arquivo atual, sobrescrever todos os arquivos, pular a extração do arquivo atual, pular a extração de todos os arquivos existentes ou renomear o arquivo atual.
-N [Amiga] extrai os comentários dos arquivos como notas de arquivo do Amiga. Os comentários dos arquivos são criados com a opção -c de [zip]({filename}../../zip)(1) ou com a opção -N da porta Amiga de [zip]({filename}../../zip)(1), que armazena as notas de arquivo como comentários.
-o sobrescreve arquivos existentes sem solicitar confirmação. Esta é uma opção perigosa, portanto, use-a com cuidado. (Geralmente é usado com -f, no entanto, e é a única maneira de sobrescrever os atributos de diretório no OS/2.)
-P password
usa a senha para descriptografar as entradas de arquivo zip criptografadas (se houver). ISSO NÃO É SEGURO! Muitos sistemas operacionais multiusuário fornecem maneiras para qualquer usuário ver a linha de comando atual de qualquer outro usuário; mesmo em sistemas autônomos, sempre há a ameaça de alguém espiar por cima do ombro. Armazenar a senha em texto simples como parte de uma linha de comando em um script automatizado é ainda pior. Sempre que possível, use o prompt interativo não ecoante para inserir senhas. (E onde a segurança é realmente importante, use criptografia forte, como Pretty Good Privacy, em vez da criptografia relativamente fraca fornecida pelas utilidades de arquivo zip padrão.)
-q executa as operações silenciosamente (-qq = ainda mais silencioso). Normalmente, o unzip imprime os nomes dos arquivos que está extraindo ou testando, os métodos de extração, quaisquer comentários de arquivo ou arquivo zip que possam estar armazenados no arquivo e, possivelmente, um resumo quando terminar com cada arquivo. As opções -q[q] suprimem a impressão de algumas ou todas essas mensagens.
-s [OS/2, NT, MS-DOS] converte espaços em nomes de arquivos em sublinhados. Como todos os sistemas operacionais de PC permitem espaços em nomes de arquivos, o unzip por padrão extrai os nomes de arquivos com espaços intactos (por exemplo, ``EA DATA. SF''). Isso pode ser inconveniente, no entanto, já que o MS-DOS em particular não oferece suporte adequado a espaços em nomes de arquivos. A conversão de espaços em sublinhados pode eliminar o desconforto em alguns casos.
-S [VMS] converte arquivos de texto (-a, -aa) para o formato de registro Stream_LF, em vez do formato de registro de texto de comprimento variável padrão. (Stream_LF é o formato de registro padrão do unzip do VMS. Ele é aplicado, a menos que a conversão (-a, -aa e/ou -b, -bb) seja solicitada ou uma entrada específica do VMS seja processada.)
-U [SOMENTE COM SUPORTE A UNICODE] modifica ou desativa o tratamento de UTF-8. Quando o suporte a UNICODE estiver disponível, a opção -U força o unzip a escapar todos os caracteres não-ASCII dos nomes de arquivo codificados em UTF-8 como ``#Uxxxx'' (para caracteres UCS-2) ou ``#Lxxxxxx'' (para pontos de código Unicode que precisam de 3 octetos). Esta opção é fornecida principalmente para fins de depuração, quando se suspeita que o novo suporte a UTF-8 esteja corrompendo os nomes de arquivo extraídos.
A opção -UU permite desativar completamente o reconhecimento de nomes de arquivo codificados em UTF-8. O tratamento de codificações de nomes de arquivo dentro do unzip volta ao comportamento das versões anteriores.
[uso antigo e obsoleto] mantém os nomes de arquivo em maiúsculas se foram criados em MS-DOS, VMS, etc. Veja -L acima.
-V mantém os números de versão de arquivo (VMS). Os arquivos VMS podem ser armazenados com um número de versão, no formato file.ext;##. Por padrão, os números de versão ``;##'' são removidos, mas esta opção permite que sejam mantidos. (Em sistemas de arquivos que limitam os nomes de arquivo a comprimentos particularmente curtos, os números de versão podem ser truncados ou removidos, independentemente desta opção.)
-W [somente quando a opção de tempo de compilação WILD_STOP_AT_DIR estiver habilitada] modifica a rotina de correspondência de padrões para que tanto `?' (caractere curinga de caractere único) quanto `*' (caractere curinga de vários caracteres) não correspondam ao caractere separador de diretório `/'. (A sequência de dois caracteres ``**'' atua como um caractere curinga de vários caracteres que inclui o caractere separador de diretório em seus caracteres correspondentes.) Exemplos:
"*.c" corresponde a "foo.c", mas não a "mydir/foo.c"
"**.c" corresponde a "foo.c" e "mydir/foo.c"
"*/*.c" corresponde a "bar/foo.c", mas não a "baz/bar/foo.c"
"??*/*" corresponde a "ab/foo" e "abc/foo"
mas não a "a/foo" ou "a/b/foo"
Este comportamento modificado é equivalente ao estilo de correspondência de padrões usado pelos shells de alguns dos sistemas operacionais suportados pelo UnZip (um exemplo é o Acorn RISC OS). Esta opção pode não estar disponível em sistemas onde o caractere separador de diretório interno do arquivo Zip `/` é permitido como um caractere regular nos nomes de arquivo nativos do sistema operacional. (Atualmente, o UnZip usa as mesmas regras de correspondência de padrões para especificações de arquivos zip curinga e padrões de seleção de entradas zip na maioria das versões. Para sistemas que permitem `/' como um caractere regular de nome de arquivo, a opção -W não funcionaria conforme o esperado em uma especificação de arquivo zip curinga.)
-X [VMS, Unix, OS/2, NT, Tandem] restaura informações de proprietário/proteção (UICs e entradas ACL) no VMS ou informações de usuário e grupo (UID/GID) no Unix, ou listas de controle de acesso (ACLs) em certas versões de rede do OS/2 (Warp Server com IBM LAN Server/Requester 3.0 a 0 Warp Connect com IBM Peer 1.0) ou ACLs de segurança no Windows NT. Na maioria dos casos, isso exigirá privilégios especiais do sistema e, ao duplicar a opção (-XX) no NT, instrui o unzip a usar privilégios para extração; mas no Unix, por exemplo, um usuário que pertence a vários grupos pode restaurar arquivos pertencentes a qualquer um desses grupos, desde que os IDs de usuário correspondam aos seus. Observe que os atributos de arquivo comuns são sempre restaurados - esta opção se aplica apenas a informações de propriedade opcionais e adicionais disponíveis em alguns sistemas operacionais. [As listas de controle de acesso do NT não parecem ser muito compatíveis com as do OS/2, portanto, nenhuma tentativa é feita de portabilidade entre plataformas de privilégios de acesso. Não está claro em quais condições isso seria útil.]
-Y [VMS] trata os sufixos de nomes de arquivos arquivados do tipo ``.nnn'' (onde ``nnn'' é um número decimal) como se fossem números de versão VMS (``;nnn''). (Por padrão, eles são tratados como tipos de arquivo.) Exemplo:
"a.b.3" -> "a.b;3".
-$ [MS-DOS, OS/2, NT] restaura o rótulo do volume se o meio de extração for removível (por exemplo, um disquete). Dobrar a opção (-$$) permite que mídias fixas (discos rígidos) também sejam rotuladas. Por padrão, os rótulos de volume são ignorados.
-/ extensions
[Apenas Acorn] substitui a lista de extensões fornecida pela variável de ambiente Unzip$Ext. Durante a extração, os nomes das extensões de arquivo que correspondem a um dos itens desta lista de extensões são movidos para o início do nome base do arquivo extraído.
-: [todos, exceto Acorn, VM/CMS, MVS, Tandem] permite extrair membros de arquivo para locais fora da pasta raiz de extração atual. Por motivos de segurança, o unzip normalmente remove os componentes de caminho ``diretório pai'' (``../'') dos nomes dos arquivos extraídos. Este recurso de segurança (novo na versão 5.50) impede que o unzip grave arquivos acidentalmente em áreas ``sensíveis'' fora da árvore de pastas de extração ativa. A opção -: permite que o unzip retorne ao seu comportamento anterior mais liberal, para permitir a extração exata de arquivos mais antigos que usavam componentes ``../'' para criar várias árvores de diretórios no nível da pasta de extração atual. Esta opção não permite gravar explicitamente no diretório raiz (``/''). Para fazer isso, é necessário definir a pasta de destino de extração como raiz (por exemplo, -d /). No entanto, quando a opção -: é especificada, ainda é possível gravar implicitamente no diretório raiz especificando componentes de caminho ``../'' suficientes dentro do arquivo zip. Use esta opção com extrema cautela.
-^ [apenas Unix] permite controlar caracteres nos nomes das entradas do arquivo ZIP extraído. No Unix, um nome de arquivo pode conter qualquer código de caractere de 8 bits, com as duas exceções de ``/'' (delimitador de diretório) e NUL (0x00, o indicador de terminação de string C), a menos que o sistema de arquivos específico tenha convenções mais restritivas. Geralmente, isso permite incorporar caracteres de controle ASCII (ou até sequências de controle sofisticadas) nos nomes dos arquivos, pelo menos em sistemas de arquivos Unix ``nativos''. No entanto, pode ser altamente suspeito usar este ``recurso'' do Unix. Caracteres de controle incorporados nos nomes dos arquivos podem ter efeitos colaterais desagradáveis quando exibidos na tela por algum código de listagem sem filtragem suficiente. E, para usuários comuns, pode ser difícil lidar com esses nomes de arquivos (por exemplo, ao tentar especificá-lo para operações de abrir, copiar, mover ou excluir). Portanto, o unzip aplica um filtro por padrão que remove caracteres de controle potencialmente perigosos dos nomes dos arquivos extraídos. A opção -^ permite substituir este filtro no caso raro de que os caracteres de controle de nome de arquivo incorporados devam ser intencionalmente restaurados.
-2 [VMS] força incondicionalmente a conversão de nomes de arquivos para nomes compatíveis com ODS2. O padrão é explorar o sistema de arquivos de destino, preservando maiúsculas e minúsculas e caracteres de nomes de arquivos estendidos em um sistema de arquivos de destino ODS5; e aplicando a filtragem de nomes de arquivos de compatibilidade ODS2 em um sistema de arquivos de destino ODS2.
OPÇÕES DE AMBIENTE
O comportamento padrão do unzip pode ser modificado por meio de opções colocadas em uma variável de ambiente. Isso pode ser feito com qualquer opção, mas provavelmente é mais útil com os modificadores -a, -L, -C, -q, -o ou -n: faça com que o unzip converta arquivos de texto automaticamente por padrão, faça com que ele converta nomes de arquivos de sistemas com letras maiúsculas para letras minúsculas, faça com que ele corresponda aos nomes de forma insensível a maiúsculas e minúsculas, faça com que ele fique mais silencioso ou faça com que ele sempre sobrescreva ou nunca sobrescreva arquivos ao extraí-los. Por exemplo, para fazer com que o unzip atue da forma mais silenciosa possível, relatando apenas erros, você usaria um dos seguintes comandos:
Unix Bourne shell: UNZIP=-qq; export UNZIP
Unix C shell: setenv UNZIP -qq
OS/2 ou MS-DOS:
set UNZIP=-qq
VMS (aspas para letras minúsculas):
define UNZIP_OPTS "-qq"
As opções de ambiente são, na prática, consideradas como qualquer outra opção da linha de comando, exceto que elas são efetivamente as primeiras opções na linha de comando. Para substituir uma opção de ambiente, você pode usar o "operador menos" para removê-la. Por exemplo, para substituir uma das opções de silêncio no exemplo acima, use o comando
unzip --q[outras opções] zipfile
O primeiro hífen é o caractere de chave normal, e o segundo é um sinal de menos, atuando na opção q. Portanto, o efeito aqui é cancelar uma unidade de silêncio. Para cancelar ambas as opções de silêncio, dois (ou mais) sinais de menos podem ser usados:
unzip -t--q zipfile
unzip ---qt zipfile
(os dois são equivalentes). Isso pode parecer estranho ou confuso, mas é razoavelmente intuitivo: basta ignorar o primeiro hífen e seguir em frente. Também é consistente com o comportamento do Unix nice(1).
Como sugerido nos exemplos acima, os nomes de variáveis padrão são UNZIP_OPTS para VMS (onde o símbolo usado para instalar o unzip como um comando estrangeiro de outra forma seria confundido com a variável de ambiente) e UNZIP para todos os outros sistemas operacionais. Para compatibilidade com zip(1), UNZIPOPT também é aceito (não pergunte). No entanto, se UNZIP e UNZIPOPT estiverem definidos, UNZIP terá precedência. A opção de diagnóstico do unzip (-v sem nome de arquivo zip) pode ser usada para verificar os valores de todas as quatro possíveis variáveis de ambiente unzip e zipinfo.
A variável de fuso horário (TZ) deve ser definida de acordo com o fuso horário local para que as opções -f e -u funcionem corretamente. Consulte a descrição de -f acima para obter detalhes. Essa variável também pode ser necessária para que os carimbos de data e hora dos arquivos extraídos sejam definidos corretamente. A versão do unzip para WIN32 (Win9x/ME/NT4/2K/XP/2K3) obtém a configuração do fuso horário do registro, assumindo que ele esteja configurado corretamente no Painel de Controle. A variável TZ é ignorada para esta versão.
DESCRIPTOGRAFIA
Arquivos criptografados são totalmente suportados pelo software Info-ZIP, mas devido às restrições de exportação dos Estados Unidos, o suporte de descriptografia/criptografia pode estar desativado em seu binário compilado. No entanto, desde a primavera de 2000, as restrições de exportação dos EUA foram liberadas, e nossos arquivos de origem agora incluem código criptográfico completo. Caso precise de distribuições binárias com suporte de criptografia ativado, consulte o arquivo WHERE em qualquer distribuição de código-fonte ou binária do Info-ZIP para obter locais dentro e fora dos EUA.
Algumas versões compiladas do unzip podem não oferecer suporte à descriptografia. Para verificar se uma versão oferece suporte à criptografia, tente testar ou extrair um arquivo criptografado, ou verifique a tela de diagnóstico do unzip (veja a opção -v acima) para ver se [decryption] está listado como uma das opções de compilação especiais.
Como observado acima, a opção -P pode ser usada para fornecer uma senha na linha de comando, mas com um custo em segurança. O método de descriptografia preferido é simplesmente extrair normalmente; se um membro do arquivo zip for criptografado, o unzip solicitará a senha sem exibir o que é digitado. O unzip continua usando a mesma senha enquanto ela parecer válida, testando um cabeçalho de 12 bytes em cada arquivo. A senha correta sempre será confirmada em relação ao cabeçalho, mas há uma chance de 1 em 256 de que uma senha incorreta também seja. (Este é um recurso de segurança do formato de arquivo zip da PKWARE; ele ajuda a evitar ataques de força bruta que, de outra forma, poderiam obter uma grande vantagem de velocidade testando apenas o cabeçalho.) No caso em que uma senha incorreta é fornecida, mas passa no teste do cabeçalho, uma CRC incorreta será gerada para os dados extraídos ou o unzip falhará durante a extração porque os bytes descriptografados não constituem um fluxo de dados compactados válido.
Se a primeira senha falhar no teste do cabeçalho em algum arquivo, o unzip solicitará outra senha e assim por diante até que todos os arquivos sejam extraídos. Se uma senha não for conhecida, inserir uma senha nula (ou seja, apenas uma quebra de linha ou Enter) é interpretado como um sinal para pular todos os avisos subsequentes. Apenas os arquivos não criptografados no arquivo serão extraídos. (Na verdade, isso não é totalmente verdade; versões mais antigas de zip(1) e zipcloak(1) permitiam senhas nulas, então o unzip verifica cada arquivo criptografado para ver se a senha nula funciona. Isso pode resultar em falsos positivos e erros de extração, como observado acima.)
Arquivos compactados com senhas de 8 bits (por exemplo, senhas com caracteres acentuados europeus) podem não ser portáveis entre sistemas e/ou outros programas de compactação. Esse problema decorre do uso de vários métodos de codificação para esses caracteres, incluindo Latin-1 (ISO 8859-1) e página de código OEM 850. O DOS PKZIP 2.04g usa a página de código OEM; o Windows PKZIP 2.50 usa Latin-1 (e, portanto, é incompatível com o DOS PKZIP); o Info-ZIP usa a página de código OEM nas versões para DOS, OS/2 e Win3.x, mas codificação ISO (Latin-1, etc.) em todos os outros lugares; e o WinZip 6.x de Nico Mak não permite senhas de 8 bits. O UnZip 5.3 (ou mais recente) tenta usar o conjunto de caracteres padrão primeiro (por exemplo, Latin-1), seguido pelo conjunto alternativo (por exemplo, página de código OEM) para testar as senhas. Em sistemas EBCDIC, se ambos falharem, a codificação EBCDIC será testada como último recurso. (EBCDIC não é testado em sistemas que não são EBCDIC, porque não há programas de compactação conhecidos que criptografem usando a codificação EBCDIC). Outras codificações de caracteres ISO além do Latin-1 não são suportadas. A nova adição do suporte (parcial) a Unicode (resp. UTF-8) no UnZip 6.0 ainda não foi adaptada ao tratamento de senhas de criptografia no unzip. Em sistemas que usam UTF-8 como codificação de caracteres nativa, o unzip simplesmente tenta a descriptografia com a senha codificada em UTF-8 nativa; as tentativas integradas de verificar a senha em codificações traduzidas ainda não foram adaptadas para o suporte a UTF-8 e, consequentemente, falharão.
EXEMPLOS
Para usar o unzip para extrair todos os membros do arquivo letters.zip para o diretório atual e subdiretórios abaixo dele, criando quaisquer subdiretórios conforme necessário:
unzip letters
Para extrair todos os membros de letters.zip para o diretório atual apenas:
unzip -j letters
Para testar letters.zip, imprimindo apenas uma mensagem de resumo indicando se o arquivo está OK ou não:
unzip -tq letters
Para testar todos os arquivos zip no diretório atual, imprimindo apenas os resumos:
unzip -tq \*.zip
(A barra invertida antes do asterisco é necessária apenas se o shell expandir curingas, como no Unix; aspas duplas poderiam ser usadas em vez disso, como nos exemplos de código abaixo). Para extrair para a saída padrão todos os membros de letters.zip cujos nomes terminam em .tex, convertendo automaticamente para a convenção de fim de linha local e redirecionando a saída para more(1):
unzip -ca letters \*.tex | more
Para extrair o arquivo binário paper1.dvi para a saída padrão e direcioná-lo para um programa de impressão:
unzip -p articles paper1.dvi | dvips
Para extrair todos os arquivos de origem FORTRAN e C – *.f, *.c, *.h e Makefile – para o diretório /tmp:
unzip source.zip "*.[fch]" Makefile -d /tmp
(as aspas duplas são necessárias apenas no Unix e apenas se a expansão de curinga estiver ativada). Para extrair todos os arquivos de origem FORTRAN e C, independentemente do caso (por exemplo, tanto *.c quanto *.C, e qualquer arquivo make, Makefile, MAKEFILE ou similar):
unzip -C source.zip "*.[fch]" makefile -d /tmp
Para extrair quaisquer desses arquivos, mas converter quaisquer nomes MS-DOS ou VMS em maiúsculas para minúsculas e converter as quebras de linha de todos os arquivos para o padrão local (sem considerar quaisquer arquivos que possam estar marcados como “binários”):
unzip -aaCL source.zip "*.[fch]" makefile -d /tmp
Para extrair apenas versões mais recentes dos arquivos que já existem no diretório atual, sem solicitar confirmação (OBSERVAÇÃO: tenha cuidado ao descompactar em um fuso horário diferente daquele em que o arquivo zip foi criado – os arquivos zip criados por versões anteriores ao Zip 2.1 não contêm informações de fuso horário e um arquivo “mais recente” de um fuso horário oriental pode, na verdade, ser mais antigo):
unzip -fo sources
Para extrair versões mais recentes dos arquivos que já existem no diretório atual e criar quaisquer arquivos que ainda não existam (mesma ressalva do exemplo anterior):
unzip -uo sources
Para exibir uma tela de diagnóstico mostrando quais opções unzip e zipinfo estão armazenadas em variáveis de ambiente, se o suporte à descriptografia foi compilado, o compilador com o qual o unzip foi compilado, etc.:
unzip -v
Nos últimos cinco exemplos, suponha que UNZIP ou UNZIP_OPTS esteja definido como -q. Para fazer uma listagem silenciosa:
unzip -l file.zip
Para fazer uma listagem duplamente silenciosa:
unzip -ql file.zip
(Observe que o “.zip” geralmente não é necessário). Para fazer uma listagem padrão:
unzip --ql file.zip
ou
unzip -l-q file.zip
ou
unzip -l--q file.zip
(Minuses extras nas opções não prejudicam).
DICAS
O mantenedor atual, sendo um tanto preguiçoso, acha muito útil definir um par de aliases: tt para “unzip -tq” e ii para “unzip -Z” (ou “zipinfo”). Pode-se então simplesmente digitar “tt zipfile” para testar um arquivo, o que vale a pena tornar um hábito. Com sorte, o unzip relatará “Nenhum erro detectado nos dados compactados de zipfile.zip”, após o que se pode respirar aliviado.
O mantenedor também acha útil definir a variável de ambiente UNZIP como -aL e está tentado a adicionar -C também. Sua variável ZIPINFO está definida como -z.
DIAGNÓSTICOS
O status de saída (ou nível de erro) se aproxima dos códigos de saída definidos pela PKWARE e assume os seguintes valores, exceto no VMS:
0 normal; nenhum erro ou aviso detectado.
1 um ou mais erros de aviso foram encontrados, mas o processamento foi concluído com sucesso de qualquer maneira. Isso inclui arquivos zip onde um ou mais arquivos foram ignorados devido a um método de compressão não suportado ou criptografia com uma senha desconhecida.
2 um erro genérico no formato do arquivo zip foi detectado. O processamento pode ter sido
concluído com sucesso; alguns arquivos zip corrompidos criados por outros arquivadores têm
soluções simples.
3 um erro grave no formato do arquivo zip foi detectado. O processamento provavelmente falhou
imediatamente.
4 o unzip não conseguiu alocar memória para um ou mais buffers durante a inicialização do
programa.
5 o unzip não conseguiu alocar memória ou não conseguiu obter um tty para ler a(s)
senha(s) de descriptografia.
6 o unzip não conseguiu alocar memória durante a descompressão para o disco.
7 o unzip não conseguiu alocar memória durante a descompressão na memória.
8 [atualmente não utilizado]
9 os arquivos zip especificados não foram encontrados.
10 opções inválidas foram especificadas na linha de comando.
11 nenhum arquivo correspondente foi encontrado.
50 o disco está (ou estava) cheio durante a extração.
51 o final do arquivo ZIP foi encontrado prematuramente.
80 o usuário interrompeu o unzip prematuramente com Ctrl+C (ou similar).
81 o teste ou a extração de um ou mais arquivos falhou devido a métodos de compressão ou
descriptografia não suportados.
82 nenhum arquivo foi encontrado devido a senhas de descriptografia incorretas. (Se mesmo um
arquivo for processado com sucesso, o código de saída é 1.)
O VMS interpreta os valores de retorno Unix (ou PC) padrão como coisas mais assustadoras, portanto,
o unzip mapeia esses valores para códigos de status no estilo VMS. O mapeamento atual é o seguinte:
1 (sucesso) para saída normal, 0x7fff0001 para erros de aviso e (0x7fff000? + 16*código_de_saída_normal_do_unzip)
para todos os outros erros, onde o `?` é 2 (erro) para valores do unzip 2, 9-11 e 80-82, e 4
(erro fatal) para os restantes (3-8, 50, 51). Além disso, há uma opção de compilação para expandir
esse comportamento: definir RETURN_CODES resulta em uma explicação legível por humanos do que o
código de status de erro significa.
BUGS
Arquivos multipartes ainda não são suportados, exceto em conjunto com o zip. (Todas as partes devem
ser concatenadas em ordem e, em seguida, zip -F'' (para zip 2.x) ouzip -FF'' (para zip 3.x)
devem ser executados no arquivo concatenado para corrigi-lo''. Além disso, o zip 3.0 e versões
posteriores podem combinar arquivos multipartes (divididos) em um único arquivo usandozip -s-
arquivo_de_entrada -O arquivo_de_saída''. Consulte a página de manual do zip 3 para obter mais
informações.) Isso será corrigido na próxima versão principal.
Arquivos lidos da entrada padrão ainda não são suportados, exceto com o funzip (e, em seguida, apenas o primeiro membro do arquivo pode ser extraído).
Arquivos criptografados com senhas de 8 bits (por exemplo, senhas com caracteres europeus acentuados) podem não ser portáveis entre sistemas e/ou outros arquivadores. Consulte a discussão em DESCRIPTOGRAFIA acima.
A opção -M do unzip (``mais'') tenta levar em conta o ajuste automático de linhas longas. No entanto, o código pode não conseguir detectar os locais de ajuste corretos. Primeiro, os caracteres de TAB (e sequências de controle semelhantes) não são levados em conta; eles são tratados como caracteres imprimíveis comuns. Em segundo lugar, dependendo do sistema/porta do sistema operacional real, o unzip pode não detectar a geometria de tela real, mas, em vez disso, confiar em "dimensões padrão comumente usadas". O tratamento correto de tabulações exigiria a implementação de uma consulta para a configuração real do tabulador no console de saída.
As datas, horários e permissões dos diretórios armazenados não são restaurados, exceto em sistemas Unix. (Em sistemas Windows NT e posteriores, os carimbos de data e hora agora são restaurados.)
[MS-DOS] Ao extrair ou testar arquivos de um arquivo em um disquete defeituoso, se a opção "Falhar" for escolhida na mensagem "Abortar, Tentar novamente, Falhar?" do DOS, versões mais antigas do unzip podem travar o sistema, exigindo uma reinicialização. Esse problema parece ter sido corrigido, mas Ctrl+C (ou Ctrl+Break) ainda pode ser usado para encerrar o unzip.
Em sistemas DEC Ultrix, o unzip às vezes falhava em arquivos zip grandes (CRC incorreto, não reproduzível consistentemente). Aparentemente, isso se devia a um bug de hardware (memória cache) ou a um bug do sistema operacional (manuseio inadequado de falhas de página?). Como o Ultrix foi abandonado em favor do Digital Unix (OSF/1), isso pode não ser mais um problema.
[Unix] Arquivos especiais Unix, como buffers FIFO (pipes nomeados), dispositivos de bloco e dispositivos de caractere, não são restaurados, mesmo que de alguma forma estejam representados no arquivo zip, e arquivos com links rígidos não são relinkados. Basicamente, os únicos tipos de arquivos restaurados pelo unzip são arquivos regulares, diretórios e links simbólicos (soft links).
[OS/2] Atributos estendidos para diretórios existentes são atualizados apenas se a opção -o ("substituir tudo") for especificada. Esta é uma limitação do sistema operacional; como os diretórios têm apenas um horário de criação associado, o unzip não tem como determinar se os atributos armazenados são mais recentes ou mais antigos do que os do disco. Na prática, isso pode significar que uma abordagem em duas etapas é necessária: primeiro, descompacte o arquivo normalmente (com ou sem atualização/atualização de arquivos existentes) e, em seguida, substitua apenas as entradas do diretório (por exemplo, "unzip -o foo */").
[VMS] Ao extrair para outro diretório, apenas a sintaxe [.foo] é aceita para a opção -d; a sintaxe Unix simples foo é ignorada silenciosamente (assim como a sintaxe VMS menos comum foo.dir).
[VMS] Quando o arquivo que está sendo extraído já existe, a consulta do unzip permite apenas ignorar, substituir ou renomear; deve haver também uma opção para criar uma nova versão do arquivo. De fato, a opção "substituir" cria uma nova versão; a versão antiga não é substituída ou excluída.
VEJA TAMBÉM
funzip(1), zip(1), zipcloak(1), zipgrep(1), zipinfo(1), zipnote(1), zipsplit(1)
URL
A página inicial do Info-ZIP está atualmente em http://www.info-zip.org/pub/infozip/ ou ftp://ftp.info-zip.org/pub/infozip/.
AUTORES
Os principais autores do Info-ZIP (membros atuais e semi-ativos do grupo de trabalho Zip-Bugs) são: Ed Gordon (Zip, manutenção geral, código compartilhado, Zip64, Win32, Unix, Unicode); Christian Spieler (coordenação da manutenção do UnZip, VMS, MS-DOS, Win32, código compartilhado, integração e otimização geral do Zip e UnZip); Onno van der Linden (Zip); Mike White (Win32, interface gráfica do Windows, DLLs do Windows); Kai Uwe Rommel (OS/2, Win32); Steven M. Schweda (VMS, Unix, suporte a novos recursos); Paul Kienitz (Amiga, Win32, Unicode); Chris Herborth (BeOS, QNX, Atari); Jonathan Hudson (SMS/QDOS); Sergio Monesi (Acorn RISC OS); Harald Denker (Atari, MVS); John Bush (Solaris, Amiga); Hunter Goatley (VMS, manutenção do site Info-ZIP); Steve Salisbury (Win32); Steve Miller (interface gráfica do Windows CE), Johnny Lee (MS-DOS, Win32, Zip64); e Dave Smith (Tandem NSK).
As seguintes pessoas foram membros anteriores do grupo de desenvolvimento Info-ZIP e forneceram grandes contribuições para partes importantes do código atual: Greg ``Cave Newt'' Roelofs (UnZip, descompressão unshrink); Jean-loup Gailly (compressão deflate); Mark Adler (descompressão inflate, fUnZip).
O autor do código original do unzip, no qual o Info-ZIP se baseou, é Samuel H. Smith; Carl Mascott fez a primeira porta para Unix; e David P. Kirschbaum organizou e liderou o Info-ZIP em seus primeiros dias, com Keith Petersen hospedando a lista de discussão original no WSMR-SimTel20. A lista completa de colaboradores do UnZip cresceu bastante; consulte o arquivo CONTRIBS na distribuição de código-fonte do UnZip para obter uma versão relativamente completa.
VERSÕES
v1.2 15 de março de 1989 Samuel H. Smith
v2.0 9 de setembro de 1989 Samuel H. Smith
v2.x outono de 1989 vários colaboradores do Usenet
v3.0 1 de maio de 1990 Info-ZIP (DPK, consolidador)
v3.1 15 de agosto de 1990 Info-ZIP (DPK, consolidador)
v4.0 1 de dezembro de 1990 Info-ZIP (GRR, mantenedor)
v4.1 12 de maio de 1991 Info-ZIP
v4.2 20 de março de 1992 Info-ZIP (subgrupo Zip-Bugs, GRR)
v5.0 21 de agosto de 1992 Info-ZIP (subgrupo Zip-Bugs, GRR)
v5.01 15 de janeiro de 1993 Info-ZIP (subgrupo Zip-Bugs, GRR)
v5.1 7 de fevereiro de 1994 Info-ZIP (subgrupo Zip-Bugs, GRR)
v5.11 2 de agosto de 1994 Info-ZIP (subgrupo Zip-Bugs, GRR)
v5.12 28 de agosto de 1994 Info-ZIP (subgrupo Zip-Bugs, GRR)
v5.2 30 de abril de 1996 Info-ZIP (subgrupo Zip-Bugs, GRR)
v5.3 22 de abril de 1997 Info-ZIP (subgrupo Zip-Bugs, GRR)
v5.31 31 de maio de 1997 Info-ZIP (subgrupo Zip-Bugs, GRR)
v5.32 3 de novembro de 1997 Info-ZIP (subgrupo Zip-Bugs, GRR)
v5.4 28 de novembro de 1998 Info-ZIP (subgrupo Zip-Bugs, SPC)
v5.41 16 de abril de 2000 Info-ZIP (subgrupo Zip-Bugs, SPC)
v5.42 14 de janeiro de 2001 Info-ZIP (subgrupo Zip-Bugs, SPC)
v5.5 17 de fevereiro de 2002 Info-ZIP (subgrupo Zip-Bugs, SPC)
v5.51 22 de maio de 2004 Info-ZIP (subgrupo Zip-Bugs, SPC)
v5.52 28 de fevereiro de 2005 Info-ZIP (subgrupo Zip-Bugs, SPC)
v6.0 20 de abril de 2009 Info-ZIP (subgrupo Zip-Bugs, SPC)