zip - empacota e comprime (cria arquivos)
SINTAXE
zip [-aABcdDeEfFghjklLmoqrRSTuvVwXyz!@$] [--longoption ...] [-b path] [-n suffixes] [-t date]
[-tt date] [zipfile [file ...]] [-xi list]
zipcloak (veja a página de manual separada)
zipnote (veja a página de manual separada)
zipsplit (veja a página de manual separada)
Nota: O processamento de linha de comando em zip foi alterado para suportar opções longas e lidar com todas as opções e argumentos de forma mais consistente. Algumas linhas de comando antigas que dependem de inconsistências na linha de comando podem não funcionar mais.
DESCRIÇÃO
zip é um utilitário de compressão e empacotamento de arquivos para Unix, VMS, MSDOS, OS/2, Windows 9x/NT/XP,
Minix, Atari, Macintosh, Amiga e Acorn RISC OS. É análogo a uma combinação dos comandos Unix tar(1) e compress(1) e é compatível com PKZIP (PKZIP do Phil Katz para sistemas MSDOS).
Um programa complementar (unzip(1)) descompacta arquivos zip. Os programas zip e unzip(1) podem funcionar com arquivos criados pelo PKZIP (suportando a maioria dos recursos do PKZIP até a versão 4.6) e o PKZIP e o PKUNZIP podem funcionar com arquivos criados pelo zip (com algumas exceções, notavelmente arquivos transmitidos, mas as alterações recentes no padrão de arquivo zip podem facilitar uma melhor compatibilidade). O zip versão 3.0 é compatível com o PKZIP 2.04 e também suporta as extensões Zip64 do PKZIP 4.5 que permitem que arquivos e arquivos excedam o limite anterior de 2 GB (4 GB em alguns casos). O zip também agora suporta compressão bzip2, se a biblioteca bzip2 for incluída quando o zip for compilado. Observe que o PKUNZIP 1.10 não pode extrair arquivos produzidos pelo PKZIP 2.04 ou zip 3.0. Você deve usar o PKUNZIP 2.04g ou o unzip 5.0p1 (ou versões posteriores) para extraí-los.
Veja a seção EXEMPLOS na parte inferior desta página para exemplos de alguns usos típicos do zip.
Arquivos Grandes e Zip64. O zip usa automaticamente as extensões Zip64 quando arquivos maiores que 4 GB são adicionados a um arquivo, um arquivo contendo entradas Zip64 é atualizado (se o arquivo resultante ainda precisar do Zip64), o tamanho do arquivo excederá 4 GB ou quando o número de entradas no arquivo exceder cerca de 64.000. O Zip64 também é usado para arquivos transmitidos da entrada padrão, pois o tamanho de tais arquivos não é conhecido antecipadamente, mas a opção -fz- pode ser usada para forçar o zip a criar arquivos compatíveis com o PKZIP 2 (desde que as extensões Zip64 não sejam necessárias). Você deve usar um unzip compatível com o PKZIP 4.5, como o unzip 6.0 ou versões posteriores, para extrair arquivos que usam as extensões Zip64.
Além disso, arquivos transmitidos, entradas criptografadas com criptografia padrão ou arquivos divididos criados com a opção de pausa podem não ser compatíveis com o PKZIP, pois os descritores de dados são usados e o PKZIP, no momento desta escrita, não suporta descritores de dados (mas as alterações recentes no padrão de arquivo zip publicado pela PKWare agora incluem algum suporte para o formato de descritor de dados que o zip usa).
Mac OS X. Embora versões anteriores do Mac tivessem sua própria porta zip, o zip suporta o Mac OS X como parte da porta Unix, e a maioria dos recursos Unix se aplica. As referências a "MacOS" abaixo geralmente se referem às versões do MacOS anteriores ao OS X. O suporte para alguns recursos do Mac OS na porta Unix do Mac OS X, como ramificações de recursos, é esperado na próxima versão do zip.
Para uma breve ajuda sobre zip e unzip, execute cada um sem especificar nenhum parâmetro na linha de comando.
USO
O programa é útil para empacotar um conjunto de arquivos para distribuição; para arquivar arquivos; e para economizar espaço em disco comprimindo temporariamente arquivos ou diretórios não utilizados.
O programa zip coloca um ou mais arquivos compactados em um único arquivo zip, juntamente com informações sobre os arquivos (nome, caminho, data, hora da última modificação, proteção e informações de verificação para verificar a integridade do arquivo). Uma estrutura de diretório inteira pode ser compactada em um arquivo zip com um único comando. As taxas de compressão de 2:1 a 3:1 são comuns para arquivos de texto. O zip tem um método de compressão (deflation) e também pode armazenar arquivos sem compressão. (Se o suporte a bzip2 for adicionado, o zip também poderá compactar usando a compressão bzip2, mas essas entradas exigem um unzip razoavelmente moderno para descompactar. Quando a compressão bzip2 é selecionada, ela substitui a deflação como o método padrão.) O zip escolhe automaticamente o melhor dos dois (deflation ou store ou, se o bzip2 for selecionado, bzip2 ou store) para cada arquivo a ser compactado.
Formato de comando. O formato de comando básico é
zip opções arquivo caminho_entrada caminho_entrada ...
onde arquivo é um arquivo zip novo ou existente e caminho_entrada é um caminho de diretório ou arquivo, incluindo curingas opcionais. Ao receber o nome de um arquivo zip existente, o zip substituirá as entradas com o mesmo nome no arquivo zip (correspondendo aos nomes relativos armazenados no arquivo) ou adicionará entradas para novos nomes. Por exemplo, se foo.zip existir e contiver foo/file1 e foo/file2, e o diretório foo contiver os arquivos foo/file1 e foo/file3, então:
zip -r foo.zip foo
ou, de forma mais concisa,
zip -r foo foo
substituirá foo/file1 em foo.zip e adicionará foo/file3 a foo.zip. Após isso, foo.zip conterá foo/file1, foo/file2 e foo/file3, com foo/file2 inalterado em relação a antes.
Portanto, se antes do comando zip ser executado, foo.zip tiver:
foo/file1 foo/file2
e o diretório foo tiver:
file1 file3
então foo.zip terá:
foo/file1 foo/file2 foo/file3
onde foo/file1 é substituído e foo/file3 é novo.
-@ arquivo de listas. Se uma lista de arquivos for especificada como -@ [Não no MacOS], o zip obtém a lista de arquivos de entrada da entrada padrão em vez da linha de comando. Por exemplo,
zip -@ foo
irá armazenar os arquivos listados, um por linha, na entrada padrão, em foo.zip.
Sob o Unix, essa opção pode ser usada de forma poderosa em conjunto com o comando find (1). Por exemplo, para arquivar todos os arquivos de código-fonte C no diretório atual e seus subdiretórios:
find . -name "*.[ch]" -print | zip source -@
(observe que o padrão deve ser colocado entre aspas para evitar que o shell o expanda).
Entrada e saída em fluxo. O zip também aceitará um único hífen ("-") como o nome do arquivo zip, caso em que ele gravará o arquivo zip na saída padrão, permitindo que a saída seja direcionada para outro programa. Por exemplo:
zip -r - . | dd of=/dev/nrst0 obs=16k
escreverá a saída zip diretamente em uma fita com o tamanho de bloco especificado para fins de backup do diretório atual.
O zip também aceita um único hífen ("-") como o nome do arquivo a ser compactado, caso em que ele lerá o arquivo da entrada padrão, permitindo que o zip receba entrada de outro programa. Por exemplo:
tar cf - . | zip backup compactará a saída do comando tar para fins de backup do diretório atual.
Isso geralmente produz uma compactação melhor do que o exemplo anterior usando a opção -r, porque o zip pode aproveitar a redundância entre os arquivos. O backup pode ser restaurado usando o comando
unzip -p backup | tar xfQuando nenhum nome de arquivo zip for fornecido e a saída padrão não for um terminal, o zip atuará como um filtro, compactando
a entrada padrão para a saída padrão. Por exemplo:
tar cf - . | zip | dd of=/dev/nrst0 obs=16k
é equivalente a
tar cf - . | zip - - | dd of=/dev/nrst0 obs=16k
Os arquivos zip criados dessa maneira podem ser extraídos com o programa funzip, que é fornecido no
pacote unzip, ou pelo gunzip, que é fornecido no pacote gzip (mas alguns gunzip podem não dar suporte a isso se o zip tiver usado as extensões Zip64). Por exemplo:
dd if=/dev/nrst0 ibs=16k | funzip | tar xvfO fluxo também pode ser salvo em um arquivo e o unzip usado.
Se o suporte a Zip64 para arquivos e arquivos grandes for habilitado e o zip for usado como um filtro, o zip criará um arquivo Zip64 que requer um descompactador PKZIP 4.5 ou posterior para lê-lo. Isso é para evitar ambiguidades na estrutura do arquivo zip, conforme definido no padrão zip atual (PKWARE AppNote), onde a decisão de usar o Zip64 precisa ser tomada antes que os dados sejam gravados para a entrada, mas para um fluxo, o tamanho dos dados não é conhecido nesse ponto. Se os dados forem conhecidos por serem menores que 4 GB, a opção -fz- pode ser usada para evitar o uso do Zip64, mas o zip será encerrado com um erro se o Zip64 for realmente necessário. O zip 3 e o unzip 6 e versões posteriores podem ler arquivos com entradas Zip64. Além disso, o zip remove as extensões Zip64 se não forem necessárias quando as entradas do arquivo forem copiadas (veja a opção -U (--copy)).
Ao direcionar a saída para outro arquivo, observe que todas as opções devem estar antes do redirecionamento, incluindo -x. Por exemplo:
zip archive "*.h" "*.c" -x donotinclude.h orthis.h > tofile
Arquivos zip. Ao modificar um arquivo zip existente, o zip gravará um arquivo temporário com o novo conteúdo e substituirá o arquivo antigo somente quando o processo de criação da nova versão for concluído sem erros.
Se o nome do arquivo zip não contiver uma extensão, a extensão .zip será adicionada. Se o nome já contiver uma extensão diferente de .zip, a extensão existente será mantida inalterada. No entanto, arquivos divididos (arquivos divididos em vários arquivos) exigem a extensão .zip no último arquivo dividido.
Análise e leitura de arquivos. Quando o zip é iniciado, ele analisa os arquivos a serem processados (se necessário). Se essa análise demorar mais de 5 segundos, o zip exibirá uma mensagem "Analisando arquivos" e começará a exibir pontos de progresso a cada 2 segundos ou a cada certo número de entradas processadas, o que ocorrer primeiro. Se houver mais de 2 segundos entre os pontos, isso pode indicar que encontrar cada arquivo está demorando e pode significar uma conexão de rede lenta, por exemplo. (Na verdade, a análise inicial de arquivos é um processo de duas etapas, em que a análise de diretórios é seguida por uma classificação e essas duas etapas são separadas por um espaço nos pontos. Se estiver atualizando um arquivo existente, um espaço também aparece entre a análise do arquivo existente e a nova análise de arquivos.) Os pontos de análise de arquivos não são controlados pela opção -ds de tamanho de ponto, mas os pontos são desativados pela opção -q silenciosa. A opção -sf mostrar arquivos pode ser usada para analisar os arquivos e obter a lista de arquivos analisados sem realmente processá-los.
Se o zip não conseguir ler um arquivo, ele emitirá um aviso, mas continuará. Consulte a opção -MM abaixo para obter mais informações sobre como o zip lida com padrões que não correspondem e arquivos que não podem ser lidos. Se alguns arquivos foram ignorados, um aviso será exibido no final da operação do zip, indicando quantos arquivos foram lidos e quantos ignorados.
Modos de comando. O zip agora oferece suporte a dois tipos distintos de modos de comando: externo e interno. Os modos externos (adicionar, atualizar e atualizar) leem arquivos do sistema de arquivos (bem como de um arquivo existente), enquanto os modos internos (excluir e copiar) operam exclusivamente nas entradas de um arquivo existente.
adicionar
Atualize as entradas existentes e adicione novos arquivos. Se o arquivo não existir, crie-o. Este é o modo padrão.
atualizar (-u)
Atualize as entradas existentes se forem mais recentes no sistema de arquivos e adicione novos arquivos. Se o arquivo não existir, emita um aviso e crie um novo arquivo.
atualizar (-f)
Atualize as entradas existentes de um arquivo se forem mais recentes no sistema de arquivos. Não adiciona novos arquivos ao arquivo.
excluir (-d)
Selecione as entradas em um arquivo existente e exclua-as.
copiar (-U)
Selecione as entradas em um arquivo existente e copie-as para um novo arquivo. Este novo modo é semelhante ao modo de atualização, mas os padrões de linha de comando selecionam as entradas no arquivo existente em vez de arquivos do sistema de arquivos e ele usa a opção --out para gravar o arquivo resultante em um novo arquivo em vez de atualizar o arquivo existente, deixando o arquivo original inalterado.
A nova opção de Sincronização de Arquivos (-FS) também é considerada um novo modo, embora seja semelhante ao modo de atualização. Este modo sincroniza o arquivo com os arquivos no sistema operacional, substituindo os arquivos no arquivo apenas se o tempo ou tamanho do arquivo do sistema operacional for diferente, adicionando novos arquivos e excluindo entradas do arquivo quando não houver um arquivo correspondente. Como este modo pode excluir entradas do arquivo, considere fazer uma cópia de backup do arquivo.
Veja também -DF para criar arquivos de diferenças.
Veja a descrição de cada opção abaixo para obter detalhes e a seção EXEMPLOS abaixo para obter exemplos.
Arquivos divididos. A versão 3.0 ou posterior do zip pode criar arquivos divididos. Um arquivo dividido é um arquivo zip padrão dividido em vários arquivos. (Observe que os arquivos divididos não são apenas arquivos divididos em partes, pois os deslocamentos das entradas agora são baseados no início de cada divisão. Concatenar as partes invalidará esses deslocamentos, mas o unzip geralmente consegue lidar com isso.
O zip geralmente se recusará a processar um arquivo concatenado a menos que a opção de correção -FF seja usada para corrigir os deslocamentos.)
Um uso de arquivos divididos é armazenar um arquivo grande em várias mídias removíveis. Para um arquivo dividido com 20 arquivos divididos, os arquivos geralmente são nomeados (substitua ARCHIVE pelo nome do seu arquivo) ARCHIVE.z01, ARCHIVE.z02, ..., ARCHIVE.z19, ARCHIVE.zip. Observe que o último arquivo é o arquivo .zip. Em contraste, os arquivos divididos são os arquivos de disco múltiplo originais que geralmente requerem disquetes e usam rótulos de volume para armazenar os números do disco. O zip oferece suporte a arquivos divididos, mas não a arquivos divididos, embora exista um procedimento para converter arquivos divididos do tamanho correto em arquivos divididos. O inverso também é verdadeiro, onde cada arquivo de um arquivo dividido pode ser copiado em ordem para arquivos com os nomes acima para criar um arquivo dividido.
Use -s para definir o tamanho da divisão e criar um arquivo dividido. O tamanho é fornecido como um número seguido opcionalmente por um dos seguintes: k (KB), m (MB), g (GB) ou t (TB) (o padrão é m). A opção -sp pode ser usada para pausar o zip entre as divisões para permitir a troca de mídia removível, por exemplo, mas leia as descrições e avisos para -s e -sp abaixo.
Embora o zip não atualize arquivos divididos, o zip fornece a nova opção -O (--output-file ou --out) para permitir que os arquivos divididos sejam atualizados e salvos em um novo arquivo. Por exemplo,
zip inarchive.zip foo.c bar.c --out outarchive.zip
lê o arquivo inarchive.zip, mesmo que seja dividido, adiciona os arquivos foo.c e bar.c e grava o arquivo resultante em outarchive.zip. Se inarchive.zip for dividido, outarchive.zip usará o mesmo tamanho de divisão por padrão. Esteja ciente de que se outarchive.zip e quaisquer arquivos divididos que forem criados com ele já existirem, eles serão sempre substituídos conforme necessário, sem aviso. Isso pode ser alterado no futuro.
Unicode. Embora o padrão zip exija que os caminhos sejam armazenados em um arquivo usando um conjunto de caracteres específico, na prática, os arquivos zip armazenam caminhos em arquivos no conjunto de caracteres local. Isso cria problemas quando um arquivo é criado ou atualizado em um sistema que usa um conjunto de caracteres e, em seguida, extraído em outro sistema que usa um conjunto de caracteres diferente. Quando compilado com suporte Unicode habilitado em plataformas que suportam caracteres largos, o zip agora armazena, além do caminho local padrão para compatibilidade com versões anteriores, a tradução UTF-8 do caminho. Isso fornece um conjunto de caracteres universal comum para armazenar caminhos que permite que esses caminhos sejam totalmente extraídos em outros sistemas que suportam Unicode e correspondam o mais próximo possível em sistemas que não suportam.
Em sistemas Win32, onde os caminhos são armazenados internamente como Unicode, mas representados no conjunto de caracteres local, é possível que alguns caminhos sejam ignorados durante uma varredura de diretório no conjunto de caracteres local. O zip com suporte a Unicode agora pode ler e armazenar esses caminhos. Observe que os sistemas Win 9x e os sistemas de arquivos FAT não oferecem suporte total a Unicode.
Esteja ciente de que as janelas do console em Win32 e Unix, por exemplo, às vezes não exibem com precisão todos os caracteres devido à forma como cada sistema operacional alterna os conjuntos de caracteres para exibição. No entanto, as ferramentas de navegação de diretórios devem exibir os caminhos corretos se as fontes necessárias forem carregadas.
Formato da linha de comando. Esta versão do zip tem processamento de linha de comando atualizado e suporte para opções longas.
As opções curtas têm o seguinte formato:
-s[-][s[-]...][value][=value][ value]
onde s é uma ou duas letras que representam a opção curta. Uma opção curta que aceita um valor é a última em um argumento, e tudo o que vem depois é considerado o valor. Se a opção puder ser negada e "-" vier imediatamente após a opção, a opção é negada. As opções curtas também podem ser fornecidas como argumentos separados:
-s[-][value][=value][ value] -s[-][value][=value][ value] ...
Em geral, as opções curtas aceitam valores como parte do mesmo argumento ou como o argumento seguinte. Um "=" opcional também é suportado. Portanto:
-ttmmddyyyy
e
-tt=mmddyyyy
e
-tt mmddyyyy
funcionam. As opções -x e -i aceitam listas de valores e usam um formato ligeiramente diferente, conforme descrito abaixo. Consulte as opções -x e -i.
As opções longas têm o seguinte formato:
--longoption[-][=value][ value]
onde a opção começa com --, tem um nome de vários caracteres, pode incluir um hífen final para negar a opção (se a opção suportar) e pode ter um valor (argumento da opção) especificado precedendo-o com = (sem espaços). Os valores também podem seguir o argumento. Portanto:
--before-date=mmddyyyy
e
--before-date mmddyyyy
funcionam.
Os nomes das opções longas podem ser abreviados para a abreviação exclusiva mais curta. Consulte as descrições das opções abaixo para ver quais opções suportam opções longas. Para evitar confusão, evite abreviar uma opção negável com um hífen embutido ("-") no hífen, se você planeja negá-la (o analisador consideraria um hífen final, como para a opção --some-option usando --some- como a opção, como parte do nome, em vez de um hífen de negação). Isso pode ser alterado para forçar o último hífen em --some a ser o hífen de negação no futuro.
OPÇÕES
-a
--ascii
[Sistemas que usam EBCDIC] Traduz o arquivo para o formato ASCII.
-A
--adjust-sfx
Ajusta o arquivo executável autoextraível. Um arquivo executável autoextraível é criado adicionando o "stub" SFX a um arquivo existente. A opção -A diz ao zip para ajustar os deslocamentos de entrada armazenados no arquivo para levar em conta esses dados de "preâmbulo".
Observação: os arquivos autoextraíveis para o Amiga são um caso especial. Atualmente, apenas a porta do Amiga do zip é capaz de ajustar ou atualizar esses arquivos sem corrompê-los. -J pode ser usado para remover o "stub" SFX se outras atualizações precisarem ser feitas.
-AC
--archive-clear
[WIN32] Depois que o arquivo for criado (e testado, se -T for usado, o que é recomendado), limpe os bits de arquivo dos arquivos processados. ATENÇÃO: depois que os bits forem limpos, eles serão limpos. Você pode querer usar a opção -sf show files para armazenar a lista de arquivos processados, caso a operação de arquivo precise ser repetida. Considere também usar a opção -MM must match. Certifique-se de verificar -DF como uma maneira possivelmente melhor de fazer backups incrementais.
-AS
--archive-set
[WIN32] Inclua apenas os arquivos que têm o bit de arquivo definido. Os diretórios não são armazenados quando -AS é usado, embora, por padrão, os caminhos das entradas, incluindo os diretórios, sejam armazenados como de costume e podem ser usados pela maioria dos descompactadores para recriar diretórios.
O bit de arquivo é definido pelo sistema operacional quando um arquivo é modificado e, se usado com -AC, -AS pode fornecer uma capacidade de backup incremental. No entanto, outros aplicativos podem modificar o bit de arquivo e pode não ser um indicador confiável de quais arquivos foram alterados desde a última operação de arquivo. Outras maneiras de criar backups incrementais são usar -t para usar as datas dos arquivos, embora isso não detecte arquivos antigos copiados para os diretórios que estão sendo arquivados, e -DF para criar um arquivo diferencial.
-B
--binary
[VM/CMS e MVS] força o arquivo a ser lido como binário (o padrão é texto).
-Bn [TANDEM] define as opções de formatação Edit/Enscribe com n definido como
bit 0: Não adicionar delimitador (Edit/Enscribe)
bit 1: Usar LF em vez de CR/LF como delimitador (Edit/Enscribe)
bit 2: Preencher o espaço do registro até o comprimento máximo do registro (Enscribe)
bit 3: Remover espaços finais (Enscribe)
bit 8: Forçar leitura grande de 30K (Expandir) para arquivos não estruturados
-b path
--temp-path path
Use o caminho especificado para o arquivo zip temporário. Por exemplo:
zip -b /tmp stuff *
colocará o arquivo zip temporário no diretório /tmp, copiando o arquivo stuff.zip para o diretório atual quando terminar. Esta opção é útil ao atualizar um arquivo existente e o sistema de arquivos que contém este arquivo antigo não tem espaço suficiente para armazenar ambos os arquivos, antigo e novo, ao mesmo tempo. Também pode ser útil ao transmitir em alguns casos para evitar a necessidade de descritores de dados. Observe que o uso desta opção pode exigir que o zip leve tempo adicional para copiar o arquivo para o sistema de arquivos de destino quando terminar.
-c
--entry-comments
Adiciona comentários de uma linha para cada arquivo. As operações de arquivo (adição, atualização) são realizadas primeiro,
e o usuário é solicitado a fornecer um comentário de uma linha para cada arquivo. Digite o comentário seguido de Enter, ou apenas Enter para nenhum comentário.
-C
--preserve-case
[VMS] Preserva o caso em todos os VMS. Negar esta opção (-C-) converte para minúsculas.
-C2
--preserve-case-2
[VMS] Preserva o caso ODS2 em VMS. Negar esta opção (-C2-) converte para minúsculas.
-C5
--preserve-case-5
[VMS] Preserva o caso ODS5 em VMS. Negar esta opção (-C5-) converte para minúsculas.
-d
--delete
Remove (exclui) entradas de um arquivo zip. Por exemplo:
zip -d foo foo/tom/junk foo/harry/\* \*.o
irá remover a entrada foo/tom/junk, todos os arquivos que começam com foo/harry/ e todos os
arquivos que terminam com .o (em qualquer caminho). Observe que a expansão de caminho do shell foi
inibida com barras invertidas, para que o zip possa ver os asteriscos, permitindo que o zip corresponda
ao conteúdo do arquivo zip em vez do conteúdo do diretório atual. (As barras invertidas não são usadas em plataformas baseadas em MSDOS.) Também pode usar aspas para escapar os asteriscos como em
zip -d foo foo/tom/junk "foo/harry/*" "*.o"
Não escapar os asteriscos em um sistema onde o shell expande curingas pode resultar em
os asteriscos sendo convertidos em uma lista de arquivos no diretório atual e essa lista
usada para excluir entradas do arquivo.
Em MSDOS, -d diferencia maiúsculas de minúsculas ao corresponder nomes no arquivo zip. Isso requer
que os nomes dos arquivos sejam inseridos em maiúsculas se foram compactados por PKZIP em um sistema MSDOS.
(Consideramos tornar isso não diferenciado em sistemas onde os caminhos não diferenciavam maiúsculas de minúsculas,
mas é possível que o arquivo tenha vindo de um sistema onde o caso é importante e o arquivo
pode incluir Bar e bar como arquivos separados no arquivo.) Mas veja a nova opção
-ic para ignorar o caso no arquivo.
-db
--display-bytes
Exibe contagens de bytes em execução, mostrando os bytes compactados e os bytes restantes.
-dc
--display-counts
Exibe a contagem de entradas compactadas e as entradas restantes.
-dd
--display-dots
Exibe pontos enquanto cada entrada é compactada (exceto em portas que têm seu próprio indicador de progresso). Veja -ds abaixo para definir o tamanho do ponto. O padrão é um ponto a cada 10 MB do arquivo de entrada
processado. A opção -v também exibe pontos (anteriormente a uma taxa muito maior do que
isso, mas agora -v também usa o padrão de 10 MB) e essa taxa também é controlada por -ds.
-df
--datafork
[MacOS] Inclui apenas o fork de dados dos arquivos compactados no arquivo. Bom para exportar arquivos
para sistemas operacionais estrangeiros. Os forks de recursos serão ignorados.
-dg
--display-globaldots
Exibe pontos de progresso para o arquivo em vez de para cada arquivo. O comando
zip -qdgds 10m
desativará a maior parte da saída, exceto pontos a cada 10 MB.
-ds tamanho
--dot-size tamanho
Define a quantidade de arquivo de entrada processada para cada ponto exibido. Consulte -dd para habilitar a exibição de pontos. Definir esta opção implica em -dd. O tamanho está no formato nm, onde n é um número e m é um multiplicador. Atualmente, m pode ser k (KB), m (MB), g (GB) ou t (TB), então, se n for 100 e m for k, o tamanho seria 100k, que é 100 KB. O padrão é 10 MB.
A opção -v também exibe pontos e agora também usa o padrão de 10 MB. Esta taxa também é controlada por esta opção. Um tamanho de 0 desativa os pontos.
Esta opção não controla os pontos da mensagem "Arquivos sendo escaneados" enquanto o zip escaneia os arquivos de entrada. O tamanho do ponto para isso é fixo em 2 segundos ou um número fixo de entradas, o que for mais longo.
-du
--display-usize
Exibe o tamanho descomprimido de cada entrada.
-dv
--display-volume
Exibe o número do volume (disco) de onde cada entrada está sendo lida, se estiver lendo um arquivo existente, e para onde está sendo gravada.
-D
--no-dir-entries
Não crie entradas no arquivo zip para diretórios. As entradas de diretório são criadas por padrão para que seus atributos possam ser salvos no arquivo zip. A variável de ambiente ZIPOPT pode ser usada para alterar as opções padrão. Por exemplo, no Unix com sh:
ZIPOPT="-D"; export ZIPOPT
(A variável ZIPOPT pode ser usada para qualquer opção, incluindo -i e -x usando um novo formato de opção detalhado abaixo, e pode incluir várias opções.) A opção -D é uma forma abreviada de -x "*/" mas a última não podia ser definida como padrão na variável de ambiente ZIPOPT, pois o conteúdo de ZIPOPT é inserido perto do início da linha de comando e a lista de arquivos deve terminar no final da linha.
Esta versão do zip permite opções -x e -i em ZIPOPT se o formulário
-x arquivo arquivo ... @
for usado, onde o @ (um argumento que é apenas @) termina a lista.
-DF
--difference-archive
Crie um arquivo que contenha todos os arquivos novos e alterados desde que o arquivo original foi criado. Para que isso funcione, a lista de arquivos de entrada e o diretório atual devem ser os mesmos da operação zip original.
Por exemplo, se o arquivo existente foi criado usando
zip -r foofull .
do diretório bar, então o comando
zip -r foofull . -DF --out foonew
também do diretório bar, cria o arquivo foonew com apenas os arquivos que não estão em foofull e os arquivos onde o tamanho ou a hora do arquivo não correspondem aos de foofull.
Observe que a variável de ambiente TZ deve ser definida de acordo com o fuso horário local para que esta opção funcione corretamente. Uma mudança no fuso horário desde a criação do arquivo original pode resultar em nenhuma hora correspondendo e todos os arquivos sendo incluídos.
Uma possível abordagem para fazer backup de um diretório pode ser criar um arquivo normal do conteúdo do diretório como um backup completo e, em seguida, usar esta opção para criar backups incrementais.
-e
--encrypt
Criptografe o conteúdo do arquivo zip usando uma senha que é inserida no terminal em resposta a um prompt (isso não será exibido; se a saída de erro não for um tty, o zip será encerrado com um erro). O prompt de senha é repetido para evitar que o usuário digite erros.
-E
--longnames
[OS/2] Use o atributo estendido .LONGNAME (se encontrado) como nome do arquivo.
-f
--freshen
Substitua (atualize) uma entrada existente no arquivo zip somente se ela tiver sido modificada mais recentemente do que a versão já presente no arquivo zip; diferente da opção de atualização (-u), esta não adicionará arquivos que ainda não estejam no arquivo zip. Por exemplo:
zip -f foo
Este comando deve ser executado a partir do mesmo diretório de onde o comando zip original foi executado, pois os caminhos armazenados em arquivos zip são sempre relativos.
Observe que a variável de ambiente TZ deve ser definida de acordo com o fuso horário local para que as opções -f, -u e -o funcionem corretamente.
As razões por trás disso são um tanto sutis, mas têm a ver com as diferenças entre os horários de arquivo no formato Unix (sempre em GMT) e a maioria dos outros sistemas operacionais (sempre no horário local) e a necessidade de comparar os dois. Um valor típico para TZ é ``MET-1MEST'' (horário da Europa Central com ajuste automático para o horário de verão).
O formato é TTThhDDD, onde TTT é o fuso horário, como MET, hh é a diferença entre GMT e o horário local, como -1 acima, e DDD é o fuso horário quando o horário de verão estiver em vigor. Omita DDD se não houver horário de verão. Para o fuso horário do leste dos EUA, EST5EDT.
-F
--fix
-FF
--fixfix
Corrija o arquivo zip. A opção -F pode ser usada se algumas partes do arquivo estiverem faltando, mas requer um diretório central razoavelmente intacto. O arquivo de entrada é digitalizado conforme o habitual, mas o zip ignorará alguns problemas. O arquivo resultante deverá ser válido, mas quaisquer entradas inconsistentes serão removidas.
Quando duplicada, como em -FF, o arquivo é digitalizado desde o início e o zip procura assinaturas especiais para identificar os limites entre os membros do arquivo. A opção -F única é mais confiável se o arquivo não estiver muito danificado, então tente esta opção primeiro.
Se o arquivo estiver muito danificado ou o final tiver sido truncado, você deve usar -FF. Esta é uma mudança em relação ao zip 2.32, onde a opção -F era capaz de ler um arquivo truncado. A opção -F agora corrige de forma mais confiável arquivos com danos menores, e a opção -FF é necessária para corrigir arquivos onde -F pode ter sido suficiente antes.
Nenhuma das opções recuperará arquivos que foram transferidos incorretamente no modo ASCII em vez do modo binário. Após a correção, a opção -t do unzip pode mostrar que alguns arquivos têm um CRC incorreto. Esses arquivos não podem ser recuperados; você pode removê-los do arquivo usando a opção -d do zip.
Observe que -FF pode ter dificuldades em corrigir arquivos que incluem um arquivo zip incorporado que foi armazenado (sem compressão) no arquivo e, dependendo dos danos, pode encontrar as entradas no arquivo incorporado em vez do arquivo em si. Tente -F primeiro, pois ele não tem esse problema.
O formato dos comandos de correção foi alterado. Por exemplo, para corrigir o arquivo danificado foo.zip,
zip -F foo --out foofix
tenta ler as entradas normalmente, copiando as entradas boas para o novo arquivo foofix.zip.
Se isso não funcionar, como quando o arquivo está truncado, ou se algumas entradas que você sabe que estão no arquivo forem perdidas, então tente
zip -FF foo --out foofixfix
e compare o arquivo resultante com o arquivo criado por -F. A opção -FF pode criar
um arquivo inconsistente. Dependendo do que estiver danificado, você pode então usar a opção -F para
corrigir esse arquivo.
Um arquivo dividido com arquivos divididos ausentes pode ser corrigido usando -F se você tiver o último arquivo dividido
do arquivo (o arquivo .zip). Se este arquivo estiver faltando, você deve usar -FF para corrigir o
arquivo, o que solicitará os arquivos que você tem.
Atualmente, as opções de correção não podem recuperar entradas que têm uma soma de verificação ruim ou estão danificadas.
-FI
--fifo [Unix] Normalmente, o zip ignora a leitura de quaisquer FIFOs (pipes nomeados) encontrados, pois o zip pode travar se o FIFO não estiver sendo alimentado. Esta opção diz ao zip para ler o
conteúdo de qualquer FIFO que ele encontrar.
-FS
--filesync
Sincronize o conteúdo de um arquivo com os arquivos no sistema operacional. Normalmente, quando um arquivo é atualizado, novos arquivos são adicionados e os arquivos alterados são atualizados, mas os arquivos que não existem mais no sistema operacional não são excluídos do arquivo. Esta opção habilita um novo modo que verifica as entradas no arquivo em relação ao sistema de arquivos. Se o tempo do arquivo e o tamanho do arquivo da entrada corresponderem ao arquivo do sistema operacional, a entrada é copiada do arquivo antigo em vez de ser lida do sistema de arquivos e compactada. Se o arquivo do sistema operacional foi alterado, a entrada é lida e compactada como de costume. Se a entrada no arquivo não corresponder a um arquivo no sistema operacional, a entrada é excluída. Habilitar esta opção deve criar arquivos que são os mesmos dos novos arquivos, mas como as entradas existentes são copiadas em vez de compactadas, atualizar um arquivo existente com -FS pode ser muito mais rápido do que criar um novo arquivo. Considere também usar -u para atualizar um arquivo.
Para que esta opção funcione, o arquivo deve ser atualizado a partir do mesmo diretório em que foi criado, para que os caminhos relativos correspondam. Se poucos arquivos estiverem sendo copiados do arquivo antigo, pode ser mais rápido criar um novo arquivo.
Observe que a variável de ambiente de fuso horário TZ deve ser definida de acordo com o fuso horário local para que esta opção funcione corretamente. Uma alteração no fuso horário desde que o arquivo original foi criado pode resultar em nenhum tempo correspondente e recompilação de todos os arquivos.
Esta opção exclui arquivos do arquivo. Se você precisar preservar o arquivo original, faça uma cópia do arquivo primeiro ou use a opção --out para enviar o arquivo atualizado para um novo arquivo. Mesmo que possa ser mais lento, criar um novo arquivo com um novo nome de arquivo é mais seguro, evita incompatibilidades entre os caminhos do arquivo e do sistema operacional e é preferível.
-g
--grow
Adicionar (acrescentar) ao arquivo zip especificado, em vez de criar um novo. Se essa operação falhar, o zip tentará restaurar o arquivo ao seu estado original. Se a restauração falhar, o arquivo poderá ser corrompido. Esta opção é ignorada quando não houver um arquivo existente ou quando pelo menos um membro do arquivo precisar ser atualizado ou excluído.
-h
-?
--help
Exibir a ajuda do zip (isso também aparece se o zip for executado sem argumentos).
-h2
--more-help
Exibir ajuda estendida, incluindo mais informações sobre o formato da linha de comando, correspondência de padrões e opções mais obscuras.
-i files
--include files
Incluir apenas os arquivos especificados, como em:
zip -r foo . -i \*.c
o que incluirá apenas os arquivos que terminam em .c no diretório atual e seus subdiretórios. (Observação para usuários do PKZIP: o comando equivalente é
pkzip -rP foo *.c
O PKZIP não permite recursão em diretórios diferentes do atual.) A barra invertida evita a substituição de nome de arquivo pelo shell, para que a correspondência de nomes seja executada pelo zip em todos os níveis de diretório. [Isso é para Unix e outros sistemas onde \ escapa o próximo caractere. Para outros sistemas onde o shell não processa * não use \ e o acima é
zip -r foo . -i *.c
Exemplos são para Unix, a menos que especificado de outra forma.] Portanto, para incluir dir, um diretório diretamente abaixo do diretório atual, use
zip -r foo . -i dir/\*
ou
zip -r foo . -i "dir/*"
para corresponder a caminhos como dir/a e dir/b/file.c [em portas sem expansão de curinga no shell, como MSDOS e Windows
zip -r foo . -i dir/*
é usado.] Observe que atualmente a barra final é necessária para diretórios (como em
zip -r foo . -i dir/
para incluir o diretório dir).
O formato de opção longa do primeiro exemplo é
zip -r foo . --include \*.c
e faz a mesma coisa que o formato de opção curta.
Embora a sintaxe do comando costumava exigir -i no final da linha de comando, esta versão realmente permite -i (ou --include) em qualquer lugar. A lista de arquivos termina no próximo argumento que começa com -, no final da linha de comando ou no terminador de lista @ (um argumento que é apenas @). Portanto, o acima pode ser dado como
zip -i \*.c @ -r foo .
por exemplo. Deve haver um espaço entre a opção e o primeiro arquivo de uma lista. Para apenas um arquivo, você pode usar o formato de valor único
zip -i\*.c -r foo .
(sem espaço entre a opção e o valor) ou
zip --include=\*.c -r foo .
como exemplos adicionais. Os formatos de valor único não são recomendados porque podem ser confusos e, em particular, o formato -ifile pode causar problemas se a primeira letra de file se combinar com i para formar uma opção de duas letras que começa com i. Use -sc para ver como sua linha de comando será analisada.
Também possível:
zip -r foo . -_
o que incluirá apenas os arquivos no diretório atual e seus subdiretórios que correspondem aos padrões no arquivo include.lst.
Arquivos para -i e -x são padrões que correspondem a caminhos internos do arquivo. Consulte -R para obter mais informações sobre padrões.
-I
--no-image
[Acorn RISC OS] Não examine arquivos de imagem. Quando usado, o zip não considerará arquivos de imagem (por exemplo, partições DOS ou arquivos Spark quando o SparkFS estiver carregado) como diretórios, mas os armazenará como arquivos únicos.
Por exemplo, se você tiver o SparkFS carregado, compactar um arquivo Spark resultará em um arquivo zip contendo um diretório (e seu conteúdo), enquanto usar a opção 'I' resultará em um arquivo zip contendo um arquivo Spark. Obviamente, o segundo caso também será obtido (sem a opção 'I') se o SparkFS não estiver carregado.
-ic
--ignore-case
[VMS, WIN32] Ignore maiúsculas e minúsculas ao corresponder entradas de arquivo. Esta opção está disponível apenas em sistemas onde as maiúsculas e minúsculas dos arquivos são ignoradas. Em sistemas com sistemas de arquivos que não diferenciam maiúsculas de minúsculas, as maiúsculas e minúsculas normalmente são ignoradas ao corresponder arquivos no sistema de arquivos, mas não são ignoradas para -f (atualizar), -d (excluir), -U (copiar) e modos semelhantes ao corresponder às entradas do arquivo (atualmente, -f ignora maiúsculas e minúsculas no VMS), porque as entradas do arquivo podem ser de sistemas onde as maiúsculas e minúsculas são importantes e nomes que são os mesmos, exceto por maiúsculas e minúsculas, podem existir em um arquivo. A opção -ic torna toda a correspondência de maiúsculas e minúsculas. Isso pode resultar em várias entradas de arquivo correspondendo a um padrão de linha de comando.
-j
--junk-paths
Armazene apenas o nome de um arquivo salvo (descarte o caminho) e não armazene nomes de diretório. Por padrão, o zip armazenará o caminho completo (relativo ao diretório atual).
-jj
--absolute-path
[MacOS] Registre Fullpath (+ Volname). O caminho completo, incluindo o volume, será armazenado. Por padrão, o caminho relativo será armazenado.
-J
--junk-sfx
Remova quaisquer dados prefixados (por exemplo, um stub SFX) do arquivo.
-k
--DOS-names
Tente converter os nomes e caminhos para que estejam em conformidade com o MSDOS, armazene apenas o atributo MSDOS (apenas o atributo de gravação do usuário do Unix) e marque a entrada como sendo de MSDOS (mesmo que não fosse); para compatibilidade com o PKUNZIP sob MSDOS, que não pode manipular determinados nomes, como aqueles com dois pontos.
-l
--to-crlf
Traduza o caractere de fim de linha Unix LF para a convenção MSDOS CR LF. Esta opção não deve ser usada em arquivos binários. Esta opção pode ser usada no Unix se o arquivo zip for destinado ao PKUNZIP sob MSDOS. Se os arquivos de entrada já contiverem CR LF, esta opção adicionará um CR extra. Isso é para garantir que o unzip -a no Unix obtenha uma cópia exata do arquivo original, para desfazer o efeito de zip -l. Consulte -ll para saber como os arquivos binários são tratados.
-la
--log-append
Anexe ao arquivo de log existente. Por padrão, o arquivo será substituído.
-lf logfilepath
--logfile-path logfilepath
Abra um arquivo de log no caminho especificado. Por padrão, qualquer arquivo existente nesse local é substituído, mas a opção -la fará com que um arquivo existente seja aberto e as novas informações de log sejam anexadas a quaisquer informações existentes. Apenas avisos e erros são gravados no log, a menos que a opção -li também seja fornecida; nesse caso, todas as mensagens de informações também são gravadas no log.
-li
--log-info
Inclui mensagens informativas, como nomes de arquivos sendo compactados, no log. Por padrão, apenas a linha de comando, quaisquer avisos e erros e o status final são incluídos.
-ll
--from-crlf
Traduz o caractere de fim de linha MSDOS CR LF para Unix LF. Esta opção não deve ser usada em arquivos binários. Esta opção pode ser usada no MSDOS se o arquivo zip for destinado ao descompactação sob Unix. Se o arquivo for convertido e, posteriormente, for determinado que é binário, um aviso será emitido e o arquivo provavelmente será corrompido. Nesta versão, se -ll detectar um arquivo binário no primeiro buffer lido de um arquivo, o zip agora emite um aviso e ignora a conversão de fim de linha no arquivo. Esta verificação parece detectar todos os arquivos binários testados, mas a verificação original permanece e, se um arquivo convertido for posteriormente determinado como binário, o aviso ainda será emitido. Um novo algoritmo agora está sendo usado para detecção de arquivos binários, o que deve permitir a conversão de arquivos de texto em UTF-8 e codificações semelhantes.
-L
--license
Exibe a licença do zip.
-m
--move
Move os arquivos especificados para o arquivo zip; na verdade, isso exclui os diretórios/arquivos de destino após a criação do arquivo zip especificado. Se um diretório se tornar vazio após a remoção dos arquivos, o diretório também será removido. Nenhuma exclusão é feita até que o zip tenha criado o arquivo sem erros. Isso é útil para economizar espaço em disco, mas é potencialmente perigoso, portanto, recomenda-se usá-lo em combinação com -T para testar o arquivo antes de remover todos os arquivos de entrada.
-MM
--must-match
Todos os padrões de entrada devem corresponder a pelo menos um arquivo e todos os arquivos de entrada encontrados devem ser legíveis. Normalmente, quando um padrão de entrada não corresponde a um arquivo, o aviso "nome não correspondido" é emitido e, quando um arquivo de entrada foi encontrado, mas posteriormente está faltando ou não pode ser lido, um aviso de "arquivo ausente ou ilegível" é emitido. Em qualquer caso, o zip continua criando o arquivo, com os novos arquivos ausentes ou ilegíveis sendo ignorados e os arquivos já existentes no arquivo permanecendo inalterados. Após a criação do arquivo, se algum arquivo não puder ser lido, o zip retorna o código de erro OPEN (18 na maioria dos sistemas) em vez do retorno de sucesso normal (0 na maioria dos sistemas). Com -MM definido, o zip sai assim que um padrão de entrada não corresponder (sempre que o aviso "nome não correspondido" for emitido) ou quando um arquivo de entrada não puder ser lido. Em qualquer caso, o zip sai com um erro OPEN e nenhum arquivo é criado.
Esta opção é útil quando uma lista conhecida de arquivos deve ser compactada, para que quaisquer arquivos ausentes ou ilegíveis resultem em um erro. É menos útil quando usado com curingas, mas o zip ainda sairá com um erro se algum padrão de entrada não corresponder a pelo menos um arquivo e se algum dos arquivos correspondentes não puder ser lido. Se você quiser criar o arquivo de qualquer maneira e só precisar saber se os arquivos foram ignorados, não use -MM e apenas verifique o código de retorno. Além disso, -lf poderia ser útil.
-n suffixes
--suffixes suffixes
Não tente comprimir arquivos com os sufixos especificados. Esses arquivos são simplesmente armazenados (compressão de 0%) no arquivo zip de saída, para que o zip não perca tempo tentando comprimi-los. Os sufixos são separados por dois pontos ou ponto e vírgula. Por exemplo:
zip -rn .Z:.zip:.tiff:.gif:.snd foo foo
copiará tudo de foo para foo.zip, mas armazenará quaisquer arquivos que terminem em .Z, .zip, .tiff, .gif ou .snd sem tentar comprimi-los (arquivos de imagem e som geralmente têm seus próprios métodos de compressão especializados). Por padrão, o zip não comprime arquivos com extensões na lista .Z:.zip:.zoo:.arc:.lzh:.arj. Esses arquivos são armazenados diretamente no arquivo. A variável de ambiente ZIPOPT pode ser usada para alterar as opções padrão. Por exemplo, no Unix com csh:
setenv ZIPOPT "-n .gif:.zip"
Para tentar a compressão em todos os arquivos, use:
zip -n : foo
A opção de compressão máxima -9 também tenta comprimir todos os arquivos, independentemente da extensão.
Em sistemas Acorn RISC OS, os sufixos são, na verdade, tipos de arquivo (formato de 3 dígitos hexadecimais). Por padrão, o zip não comprime arquivos com os tipos de arquivo na lista DDC:D96:68E (ou seja, Arquivos, arquivos CFS e arquivos PackDir).
-nw
--no-wild
Não execute o processamento interno de curingas (o processamento de curingas do shell ainda é feito pelo shell, a menos que os argumentos sejam escapados). Útil se uma lista de caminhos estiver sendo lida e nenhuma substituição de curinga for desejada.
-N
--notes
[Amiga, MacOS] Salve as anotações de arquivo Amiga ou MacOS como comentários do arquivo zip. Eles podem ser restaurados usando a opção -N do unzip. Se -c for usado também, você será solicitado a fornecer comentários apenas para aqueles arquivos que não possuem anotações.
-o
--latest-time
Defina a hora de "última modificação" do arquivo zip para a hora de "última modificação" mais recente (ou mais antiga) encontrada entre as entradas no arquivo zip. Isso pode ser usado sem nenhuma outra operação, se desejado. Por exemplo:
zip -o foo
alterará a hora de "última modificação" de foo.zip para a hora mais recente das entradas em foo.zip.
-O output-file
--output-file output-file
Processe as alterações do arquivo como de costume, mas, em vez de atualizar o arquivo existente, envie o novo arquivo para output-file. Útil para atualizar um arquivo sem alterar o arquivo existente, e o arquivo de entrada deve ser um arquivo diferente do arquivo de saída.
Esta opção pode ser usada para criar arquivos divididos atualizados. Também pode ser usado com -U para copiar entradas de um arquivo existente para um novo arquivo. Consulte a seção EXEMPLOS abaixo.
Outro uso é converter arquivos ZIP de um tamanho de divisão para outro. Por exemplo, para converter um arquivo com divisões de 700 MB em CD para um com divisões de 2 GB em DVD, você pode usar:
zip -s 2g cd-split.zip --out dvd-split.zip
o que usa o modo de cópia. Veja -U abaixo. Além disso:
zip -s 0 split.zip --out unsplit.zip
converterá um arquivo dividido em um arquivo único.
O modo de cópia converterá entradas de fluxo (usando descritores de dados, que devem ser compatíveis com a maioria dos descompactadores) em entradas normais (que devem ser compatíveis com todos os descompactadores), exceto se a criptografia padrão foi usada. Para arquivos com entradas criptografadas, o zipcloak descriptografará as entradas e as converterá em entradas normais.
-p
--paths
Inclui caminhos de arquivos relativos como parte dos nomes dos arquivos armazenados no arquivo. Este é o padrão. A opção -j remove os caminhos e armazena apenas os nomes dos arquivos.
-P password
--password password
Usa a senha para criptografar as entradas do arquivo ZIP (se houver). ISSO NÃO É SEGURO! Muitos sistemas operacionais multiusuário fornecem maneiras para qualquer usuário visualizar a linha de comando atual de qualquer outro usuário; mesmo em sistemas autônomos, sempre existe a ameaça de alguém espiar por cima do ombro. Armazenar a senha em texto simples como parte de um script automatizado é ainda pior. Sempre que possível, use o prompt interativo não reverberante para inserir senhas. (E onde a segurança é realmente importante, use criptografia forte, como Pretty Good Privacy, em vez da criptografia padrão relativamente fraca fornecida pelas utilidades de arquivo ZIP).
-q
--quiet
Modo silencioso; elimina mensagens informativas e solicitações de comentários. (Útil, por exemplo, em scripts de shell e tarefas em segundo plano).
-Qn
--Q-flag n
[QDOS] armazena informações sobre o arquivo no cabeçalho do arquivo com n definido como
bit 0: não adiciona cabeçalhos para nenhum arquivo
bit 1: adiciona cabeçalhos para todos os arquivos
bit 2: não aguarda a pressão de tecla interativa na saída
-r
--recurse-paths
Percorre a estrutura de diretórios recursivamente; por exemplo:
zip -r foo.zip foo
ou mais concisamente
zip -r foo foo
Neste caso, todos os arquivos e diretórios em foo são salvos em um arquivo ZIP chamado foo.zip, incluindo arquivos com nomes que começam com ".", pois a recursão não usa o mecanismo de substituição de nomes de arquivos do shell. Se você deseja incluir apenas um subconjunto específico dos arquivos no diretório foo e seus subdiretórios, use a opção -i para especificar o padrão de arquivos a serem incluídos. Você não deve usar -r com o nome ".*", pois isso corresponderá a ".." e tentará compactar o diretório pai (provavelmente não é o que se pretendia).
Vários diretórios de origem são permitidos, como em
zip -r foo foo1 foo2
que primeiro compacta foo1 e, em seguida, foo2, percorrendo cada diretório.
Observe que, embora os curingas para -r sejam normalmente resolvidos durante a recursão nos diretórios do sistema de arquivos, quaisquer curingas -R, -x e -i são aplicados aos nomes de caminhos de arquivo internos, depois que os diretórios são digitalizados. Para que os curingas se apliquem aos arquivos em subdiretórios ao recursar em sistemas Unix e semelhantes, onde o shell faz a substituição de curingas, escape todos os curingas ou coloque todos os argumentos com curingas entre aspas. Isso permite que o zip veja os curingas e corresponda aos arquivos em subdiretórios usando-os enquanto ele recursa.
-R
--recurse-patterns
Percorre a estrutura de diretórios recursivamente, começando no diretório atual; por exemplo:
zip -R foo "*.c"
Nesse caso, todos os arquivos correspondentes a *.c na árvore, começando no diretório atual, são armazenados em um arquivo zip chamado foo.zip. Observe que *.c corresponderá a file.c, a/file.c e a/b/.c. Mais de um padrão pode ser listado como argumentos separados. Observe para usuários do PKZIP: o comando equivalente é
pkzip -rP foo *.c
Os padrões são caminhos de arquivos relativos, conforme aparecem no arquivo ou conforme serão após a compactação, e podem ter curingas opcionais. Por exemplo, dado que o diretório atual é foo e sob ele estão os diretórios foo1 e foo2, e em foo1 está o arquivo bar.c,
zip -R foo/*
compactará foo, foo/foo1, foo/foo1/bar.c e foo/foo2.
zip -R */bar.c
compactará foo/foo1/bar.c. Veja a observação para -r sobre como escapar de curingas.
-RE
--regex
[WIN32] Antes da versão 3.0 do zip, a correspondência de lista de expressões regulares estava habilitada por padrão nas plataformas Windows. Devido à confusão resultante da necessidade de escapar "[" e "]" em
nomes, agora está desativada por padrão no Windows, para que "[" e "]" sejam apenas caracteres normais em nomes. Esta opção reativa a correspondência de [].
-s splitsize
--split-size splitsize
Habilita a criação de um arquivo dividido e define o tamanho da divisão. Um arquivo dividido é um arquivo que pode ser dividido em vários arquivos. Conforme o arquivo é criado, se o tamanho do arquivo atingir o tamanho de divisão especificado, essa divisão é fechada e a próxima divisão é aberta. Em geral, todas as divisões, exceto a última, terão o tamanho da divisão e a última terá o que sobrar. Se todo o arquivo for menor que o tamanho da divisão, um arquivo único será criado.
Os arquivos divididos são armazenados em arquivos numerados. Por exemplo, se o arquivo de saída for chamado de archive e três divisões forem necessárias, o arquivo resultante estará nos três arquivos archive.z01, archive.z02 e archive.zip. Não altere a numeração desses arquivos ou o arquivo não poderá ser lido, pois eles são usados para determinar a ordem em que as divisões são lidas.
O tamanho da divisão é um número, opcionalmente seguido por um multiplicador. Atualmente, o número deve ser um inteiro. O multiplicador pode ser atualmente um de k (kilobytes), m (megabytes), g (gigabytes) ou t (terabytes). Como 64k é o tamanho mínimo de divisão, os números sem multiplicadores definem o valor em megabytes. Por exemplo, para criar um arquivo dividido chamado foo com o conteúdo do diretório bar com divisões de 670 MB, que podem ser úteis para gravar em CDs, o comando:
zip -s 670m -r foo bar
poderia ser usado.
Atualmente, as divisões antigas de um arquivo dividido não são excluídas de um novo arquivo, mas elas podem ser especificamente excluídas. Se possível, mantenha os arquivos de entrada e saída fora do caminho que está sendo compactado ao criar arquivos divididos.
Usar -s sem -sp como acima cria todos os splits onde foo está sendo gravado, neste caso, o diretório atual. Este modo de divisão atualiza os splits enquanto o arquivo está sendo criado, exigindo que todos os splits permaneçam graváveis, mas cria arquivos de divisão que são legíveis por qualquer unzip que suporte arquivos de divisão. Consulte -sp abaixo para habilitar o modo de pausa de divisão, que permite que os splits sejam gravados diretamente em mídia removível.
A opção -sv pode ser usada para habilitar a divisão detalhada e fornecer detalhes de como a divisão está sendo feita. A opção -sb pode ser usada para tocar um sinal sonoro quando o zip pausar para o próximo destino de divisão.
Arquivos de divisão não podem ser atualizados, mas consulte a opção -O (--out) para saber como um arquivo de divisão pode ser atualizado ao ser copiado para um novo arquivo. Um arquivo de divisão também pode ser convertido em um arquivo único usando um tamanho de divisão de 0 ou negando a opção -s:
zip -s 0 split.zip --out single.zip
Consulte também -U (--copy) para obter mais informações sobre o uso do modo de cópia.
-sb
--split-bell
Se estiver dividindo e usando o modo de pausa de divisão, toque um sinal sonoro quando o zip pausar para cada destino de divisão.
-sc
--show-command
Mostre a linha de comando que inicia o zip conforme processada e saia. O novo analisador de comandos permuta os argumentos, colocando todas as opções e quaisquer valores associados a elas antes de quaisquer argumentos que não sejam opções. Isso permite que uma opção apareça em qualquer lugar da linha de comando, desde que quaisquer valores que acompanhem a opção também o façam. Esta opção exibe a linha de comando como o zip a vê, incluindo quaisquer argumentos do ambiente, como da variável ZIPOPT. Onde for permitido, as opções que aparecem mais tarde na linha de comando podem substituir as opções que aparecem antes na linha de comando.
-sf
--show-files
Mostre os arquivos que seriam operados e, em seguida, saia. Por exemplo, se estiver criando um novo arquivo, isso listará os arquivos que seriam adicionados. Se a opção for negada, -sf-, a saída será apenas para um arquivo de log aberto. A exibição na tela não é recomendada para listas grandes.
-so
--show-options
Mostre todas as opções disponíveis suportadas pelo zip conforme compilado no sistema atual. À medida que este comando lê a tabela de opções, ele deve incluir todas as opções. Cada linha inclui a opção curta (se definida), a opção longa (se definida), o formato de qualquer valor que acompanhe a opção, se a opção pode ser negada e uma pequena descrição. O formato do valor pode ser sem valor, valor obrigatório, valor opcional, valor de caractere único, valor numérico ou uma lista de valores. A saída desta opção não se destina a mostrar como usar qualquer opção, mas apenas mostrar quais opções estão disponíveis.
-sp
--split-pause
Se a divisão estiver habilitada com -s, habilite o modo de pausa de divisão. Isso cria arquivos de divisão como -s faz, mas o streaming de gravação é usado para que cada divisão possa ser fechada assim que for gravada e o zip pausará entre cada divisão para permitir a alteração do destino ou da mídia de divisão.
-sp
--split-size size
Divide the archive into smaller volumes. O tamanho é em bytes, e pode ser especificado usando
os sufixos K (Kilobytes), M (Megabytes), G (Gigabytes) ou T (Terabytes). Por exemplo,
-sp10240 é o mesmo que -sp10K, que é o mesmo que -sp10M/10.
Embora este modo de divisão permita gravar divisões diretamente em mídia removível, ele usa
um formato de arquivo de fluxo que pode não ser legível por alguns descompactadores. Antes de
confiar em arquivos divididos criados com -sp, teste um arquivo dividido com o descompactador
que você usará.
Para converter um arquivo dividido de fluxo (criado com -sp) em um arquivo padrão, consulte a
opção --out.
-su
--show-unicode
Como -sf, mas também mostra a versão Unicode do caminho, se existir.
-sU
--show-just-unicode
Como -sf, mas mostra apenas a versão Unicode do caminho, se existir; caso contrário, mostra a
versão padrão do caminho.
-sv
--split-verbose
Habilita várias mensagens detalhadas durante a divisão, mostrando como a divisão está sendo
feita.
-S
--system-hidden
[MSDOS, OS/2, WIN32 e ATARI] Inclui arquivos de sistema e ocultos.
[MacOS] Inclui arquivos invisíveis do Finder, que são ignorados de outra forma.
-t mmddaaaa
--from-date mmddaaaa
Não opere em arquivos modificados antes da data especificada, onde mm é o mês (00-12), dd é o
dia do mês (01-31) e aaaa é o ano. O formato de data ISO 8601 aaaa-mm-dd também é aceito. Por
exemplo:
zip -rt 12071991 infamy foo
zip -rt 1991-12-07 infamy foo
adicionará todos os arquivos no diretório foo e seus subdiretórios que foram modificados
posteriormente em 7 de dezembro de 1991 ao arquivo zip infamy.zip.
-tt mmddaaaa
--before-date mmddaaaa
Não opere em arquivos modificados após ou na data especificada, onde mm é o mês (00-12), dd é o
dia do mês (01-31) e aaaa é o ano. O formato de data ISO 8601 aaaa-mm-dd também é aceito. Por
exemplo:
zip -rtt 11301995 infamy foo
zip -rtt 1995-11-30 infamy foo
adicionará todos os arquivos no diretório foo e seus subdiretórios que foram modificados antes
de 30 de novembro de 1995 ao arquivo zip infamy.zip.
-T
--test
Teste a integridade do novo arquivo zip. Se a verificação falhar, o arquivo zip antigo não será
alterado e (com a opção -m) nenhum arquivo de entrada será removido.
-TT cmd
--unzip-command cmd
Use o comando cmd em vez de 'unzip -tqq' para testar um arquivo quando a opção -T for usada. No
Unix, para usar uma cópia do unzip no diretório atual em vez do unzip padrão do sistema, pode
usar:
zip archive file1 file2 -T -TT "./unzip -tqq"
Em cmd, {} é substituído pelo nome do arquivo temporário; caso contrário, o nome do arquivo é
acrescentado ao final do comando. O código de retorno é verificado para obter sucesso (0 no
Unix).
-u
--update
Substitua (atualize) uma entrada existente no arquivo zip somente se ela tiver sido modificada
mais recentemente do que a versão já existente no arquivo zip. Por exemplo:
zip -u stuff *
adicionará quaisquer novos arquivos no diretório atual e atualizará quaisquer arquivos que tenham
sido modificados desde que o arquivo zip stuff.zip foi criado/modificado pela última vez (observe
que zip não tentará compactar stuff.zip nele mesmo quando você fizer isso).
Observe que a opção -u sem argumentos de arquivo de entrada age como a opção -f (freshen).
-U
--copy-entries
Copie entradas de um arquivo para outro. Requer a opção --out para especificar um arquivo de saída diferente do arquivo de entrada. O modo de cópia é o inverso de -d delete. Quando o modo delete está sendo usado com --out, as entradas selecionadas são excluídas do arquivo e todas as outras entradas são copiadas para o novo arquivo, enquanto o modo de cópia seleciona os arquivos a serem incluídos no novo arquivo. Ao contrário de -u update, os padrões de entrada na linha de comando são correspondidos apenas com as entradas do arquivo, e não com os arquivos do sistema de arquivos. Por exemplo,
zip inarchive "*.c" --copy --out outarchive
copia as entradas com nomes terminados em .c de inarchive para outarchive. O caractere curinga deve ser escapado em alguns sistemas para evitar que o shell substitua os nomes dos arquivos do sistema de arquivos, que podem não ter relevância para as entradas no arquivo.
Se nenhum arquivo de entrada aparecer na linha de comando e --out for usado, o modo de cópia será assumido:
zip inarchive --out outarchive
Isso é útil para alterar o tamanho do arquivo dividido, por exemplo. A criptografia e a descriptografia de entradas ainda não são suportadas usando o modo de cópia. Use zipcloak para isso.
-UN v
--unicode v
Determine o que o zip deve fazer com os nomes de arquivo Unicode. O zip 3.0, além do caminho padrão do arquivo, agora inclui a tradução UTF-8 do caminho se o caminho da entrada não for inteiramente ASCII de 7 bits. Quando uma entrada não tem o caminho Unicode, o zip retorna ao caminho padrão do arquivo. O problema de usar o caminho padrão é que esse caminho está no conjunto de caracteres local do zip que criou a entrada, o que pode conter caracteres que não são válidos no conjunto de caracteres que está sendo usado pelo unzip. Quando o zip está lendo um arquivo, se uma entrada também tiver um caminho Unicode, o zip agora usa o caminho Unicode por padrão para recriar o caminho padrão usando o conjunto de caracteres local atual.
Esta opção pode ser usada para determinar o que o zip deve fazer com este caminho se houver uma incompatibilidade entre o caminho padrão armazenado e o caminho UTF-8 armazenado (o que pode acontecer se o caminho padrão foi atualizado). Em todos os casos, se houver uma incompatibilidade, assume-se que o caminho padrão seja mais atual e o zip usa esse caminho. Os valores para v são:
q - sair se os caminhos não corresponderem
w - avisar, continuar com o caminho padrão
i - ignorar, continuar com o caminho padrão
n - sem Unicode, não usar caminhos Unicode
O padrão é avisar e continuar.
Os caracteres que não são válidos no conjunto de caracteres atual são escapados como \#Uxxxx e #Lxxxxxx, onde x é um caractere ASCII para um dígito hexadecimal. O primeiro é usado se um número de caractere de 16 bits for suficiente para representar o caractere Unicode e o segundo se o caractere precisar de mais de 16 bits para representar seu código de caractere Unicode. Definir -UN para
e - escapar
como em
zip archive -sU -UN=e
força o zip a escapar todos os caracteres que não são imprimíveis em ASCII de 7 bits.
Normalmente, o zip armazena UTF-8 diretamente no campo do caminho padrão em sistemas onde UTF-8 é o conjunto de caracteres atual e armazena o UTF-8 nos novos campos extras caso contrário. A opção
u - UTF-8
como em
arquivo zip dir -r -UN=UTF8
força o zip a armazenar UTF-8 como nativo no arquivo. Observe que armazenar UTF-8 diretamente é o padrão em sistemas Unix que o suportam. Esta opção pode ser útil em sistemas Windows, onde o caminho com escape é grande demais para ser um caminho válido, e a versão UTF-8 do caminho é menor, mas o UTF-8 nativo não é compatível com versões anteriores em sistemas Windows.
-v
--verbose
Modo verboso ou imprimir informações de diagnóstico da versão.
Normalmente, quando aplicado a operações reais, esta opção habilita a exibição de um indicador de progresso durante a compressão (veja -dd para mais informações sobre os pontos) e solicita informações de diagnóstico detalhadas sobre peculiaridades da estrutura do arquivo zip.
No entanto, quando -v é o único argumento da linha de comando, uma tela de diagnóstico é exibida em vez disso. Isso agora deve funcionar mesmo que a saída padrão seja redirecionada para um arquivo, permitindo salvar facilmente as informações para enviar com relatórios de bugs para o Info-ZIP. A tela de versão fornece o cabeçalho da tela de ajuda com o nome do programa, versão e data de lançamento, alguns ponteiros para as páginas iniciais e sites de distribuição do Info-ZIP e mostra informações sobre o ambiente de destino (tipo e versão do compilador, versão do sistema operacional, data de compilação e os recursos opcionais habilitados usados para criar o executável zip).
-V
--VMS-portable
[VMS] Salvar atributos de arquivo VMS. (Os arquivos são truncados no EOF.) Quando um arquivo -V é descompactado em um sistema que não seja VMS, alguns tipos de arquivo (notavelmente arquivos de texto Stream_LF e arquivos binários puros como fixed-512) devem ser extraídos intactos. Os arquivos indexados e os tipos de arquivo com tamanhos de registro incorporados (notavelmente tipos de registro de comprimento variável) provavelmente serão considerados corrompidos em outro lugar.
-VV
--VMS-specific
[VMS] Salvar atributos de arquivo VMS e todos os blocos alocados em um arquivo, incluindo quaisquer dados além do EOF. Útil para mover arquivos malformados entre sistemas VMS. Quando um arquivo -VV é descompactado em um sistema que não seja VMS, quase todos os arquivos parecerão corrompidos.
-w
--VMS-versions
[VMS] Anexar o número da versão dos arquivos ao nome, incluindo várias versões dos arquivos. O padrão é usar apenas a versão mais recente de um arquivo especificado.
-ww
--VMS-dot-versions
[VMS] Anexar o número da versão dos arquivos ao nome, incluindo várias versões dos arquivos, usando o formato .nnn. O padrão é usar apenas a versão mais recente de um arquivo especificado.
-ws
--wild-stop-dirs
Os curingas correspondem apenas em um nível de diretório. Normalmente, o zip trata os caminhos como strings e, dados os caminhos
/foo/bar/dir/file1.c
/foo/bar/file2.c
um padrão de entrada como
/foo/bar/*
normalmente corresponderia a ambos os caminhos, o * correspondendo a dir/file1.c e file2.c. Observe que no primeiro caso, uma fronteira de diretório (/) foi cruzada na correspondência. Com -ws, nenhuma fronteira de diretório será incluída na correspondência, tornando os curingas locais para um nível de diretório específico. Portanto, com -ws habilitado, apenas o segundo caminho seria correspondido.
Ao usar -ws, use ** para corresponder através de limites de diretório, como * faz normalmente.
-x arquivos
--exclude arquivos
Exclua explicitamente os arquivos especificados, como em:
zip -r foo foo -x \*.o
o que incluirá o conteúdo de foo em foo.zip, excluindo todos os arquivos que terminam em .o. A barra invertida evita a substituição de nomes de arquivos pelo shell, para que a correspondência de nomes seja realizada pelo zip em todos os níveis de diretório.
Também é possível:
zip -r foo foo -_
o que incluirá o conteúdo de foo em foo.zip, excluindo todos os arquivos que correspondem aos padrões no arquivo exclude.lst.
As formas longas das opções acima são:
zip -r foo foo --exclude \*.o
e
zip -r foo foo --exclude @exclude.lst
Vários padrões podem ser especificados, como em:
zip -r foo foo -x \*.o \*.c
Se não houver espaço entre -x e o padrão, assume-se que há apenas um valor (sem lista):
zip -r foo foo -x\*.o
Veja -i para mais informações sobre incluir e excluir.
-X
--no-extra
Não salve atributos de arquivo extras (Atributos Estendidos no OS/2, uid/gid e horários de arquivo no Unix). O formato zip usa campos extras para incluir informações adicionais para cada entrada. Alguns campos extras são específicos de sistemas particulares, enquanto outros são aplicáveis a todos os sistemas. Normalmente, quando o zip lê entradas de um arquivo existente, ele lê os campos extras que conhece, remove o restante e adiciona os campos extras aplicáveis ao sistema. Com -X, o zip remove todos os campos antigos e inclui apenas os campos extras Unicode e Zip64 (atualmente, esses dois campos extras não podem ser desativados).
Negando essa opção, -X-, inclui todos os campos extras padrão, mas também copia quaisquer campos extras não reconhecidos.
-y
--symlinks
Para UNIX e VMS (V8.3 e posterior), armazene links simbólicos como tal no arquivo zip, em vez de compactar e armazenar o arquivo referenciado pelo link. Isso pode evitar que várias cópias de arquivos sejam incluídas no arquivo, à medida que o zip percorre as árvores de diretórios e acessa os arquivos diretamente e por meio de links.
-z
--archive-comment
Solicite um comentário de várias linhas para todo o arquivo zip. O comentário é terminado por uma linha contendo apenas um ponto ou uma condição de fim de arquivo (^D no Unix, ^Z no MSDOS, OS/2 e VMS). O comentário pode ser obtido de um arquivo:
zip -z foo < foowhat
-Z cm
--compression-method cm
Defina o método de compressão padrão. Atualmente, os principais métodos suportados pelo zip são store e deflate. O método de compressão pode ser definido como:
store - Definir o método de compressão como store força o zip a armazenar as entradas sem compressão. Geralmente, isso é mais rápido do que compactar as entradas, mas não resulta em economia de espaço. Isso é o mesmo que usar -0 (nível de compressão zero).
deflate - Este é o método padrão para zip. Se o zip determinar que armazenar é melhor do que a deflação, a entrada será armazenada em vez disso.
bzip2 - Se o suporte a bzip2 estiver compilado, este método de compressão também se torna disponível. Apenas alguns descompactadores modernos suportam atualmente o método de compressão bzip2, portanto, teste o descompactador que você usará antes de confiar em arquivos que usam este método (método de compressão 12).
Por exemplo, para adicionar bar.c ao arquivo foo usando a compressão bzip2:
zip -Z bzip2 foo bar.c
O método de compressão pode ser abreviado:
zip -Zb foo bar.c
-#
(-0, -1, -2, -3, -4, -5, -6, -7, -8, -9)
Regula a velocidade da compressão usando o dígito \# especificado, onde -0 indica nenhuma compressão (armazena todos os arquivos), -1 indica a compressão mais rápida (menos compressão)
e -9 indica a compressão mais lenta (compressão ideal, ignora a lista de sufixos). O nível de compressão padrão é -6.
Embora ainda esteja em desenvolvimento, a intenção é que esta configuração controle a velocidade de compressão
para todos os métodos de compressão. Atualmente, apenas o método de desinflação é controlado.
-!
--use-privileges
[WIN32] Use privilégios (se concedidos) para obter todos os aspectos da segurança WinNT.
-@
--names-stdin
Obtenha a lista de arquivos de entrada do fluxo de entrada padrão. Apenas um nome de arquivo por linha.
-$
--volume-label
[MSDOS, OS/2, WIN32] Inclua o rótulo do volume para a unidade que contém o primeiro arquivo a ser
comprimido. Se você quiser incluir apenas o rótulo do volume ou forçar uma unidade específica,
use o nome da unidade como o primeiro nome do arquivo, como em:
zip -$ foo a: c:bar
EXEMPLOS
O exemplo mais simples:
zip stuff *
cria o arquivo stuff.zip (assumindo que ele não existe) e coloca todos os arquivos no diretório atual nele, em formato comprimido (o sufixo .zip é adicionado automaticamente, a menos que o nome do arquivo já contenha um ponto; isso permite a especificação explícita de outros sufixos).
Devido à forma como o shell no Unix faz a substituição de nomes de arquivos, os arquivos que começam com "." não são incluídos; para incluí-los também:
zip stuff .* *
Mesmo assim, nenhum subdiretório do diretório atual será incluído.
Para compactar um diretório inteiro, o comando:
zip -r foo foo
cria o arquivo foo.zip, contendo todos os arquivos e diretórios no diretório foo que está contido no diretório atual.
Você pode querer criar um arquivo zip que contenha os arquivos em foo, sem registrar o nome do diretório, foo. Você pode usar a opção -j para omitir os caminhos, como em:
zip -j foo foo/*
Se você estiver com pouco espaço em disco, pode não ter espaço suficiente para armazenar o diretório original e o arquivo zip comprimido correspondente. Nesse caso, você pode criar o arquivo em etapas usando a opção -m. Se foo contiver os subdiretórios tom, dick e harry, você pode:
zip -rm foo foo/tom
zip -rm foo foo/dick
zip -rm foo foo/harry
onde o primeiro comando cria foo.zip, e os dois seguintes o adicionam. Ao final de cada
comando zip, o último arquivo criado é excluído, liberando espaço para o próximo comando zip funcionar.
Use -s para definir o tamanho da divisão e criar um arquivo dividido. O tamanho é dado como um número seguido opcionalmente por um dos seguintes: k (KB), m (MB), g (GB) ou t (TB). O comando
zip -s 2g -r split.zip foo
cria um arquivo dividido do diretório foo, com divisões de no máximo 2 GB cada. Se foo contivesse 5 GB de conteúdo e o conteúdo fosse armazenado no arquivo dividido sem compressão (para simplificar este exemplo), isso criaria três divisões: split.z01 com 2 GB, split.z02 com 2 GB e split.zip com um pouco mais de 1 GB.
A opção -sp pode ser usada para pausar o zip entre as divisões, permitindo a troca de mídias removíveis, por exemplo, mas leia as descrições e avisos para ambas as opções -s e -sp abaixo.
Embora o zip não atualize arquivos divididos, o zip fornece a nova opção -O (--output-file) para permitir que arquivos divididos sejam atualizados e salvos em um novo arquivo. Por exemplo,
zip inarchive.zip foo.c bar.c --out outarchive.zip
lê o arquivo inarchive.zip, mesmo que seja dividido, adiciona os arquivos foo.c e bar.c e grava o arquivo resultante em outarchive.zip. Se inarchive.zip for dividido, então outarchive.zip assume por padrão o mesmo tamanho de divisão. Esteja ciente de que outarchive.zip e quaisquer arquivos de divisão que forem criados com ele são sempre sobrescritos sem aviso. Isso pode ser alterado no futuro.
CORRESPONDÊNCIA DE PADRÕES
Esta seção se aplica apenas ao Unix. Aguarde detalhes sobre a operação em MSDOS e VMS. No entanto, os caracteres curinga especiais * e [] abaixo se aplicam pelo menos ao MSDOS também.
Os shells Unix (sh, csh, bash e outros) normalmente realizam a substituição de nomes de arquivos (também chamada de "globbing") nos argumentos do comando. Geralmente, os caracteres especiais são:
? corresponde a qualquer caractere único
* corresponde a qualquer número de caracteres (incluindo nenhum)
[] corresponde a qualquer caractere na faixa indicada dentro dos colchetes (exemplo: [a-f], [0-9]).
Este formulário de correspondência de curinga permite que um usuário especifique uma lista de caracteres entre colchetes e, se algum dos caracteres corresponder, a expressão corresponderá. Por exemplo:
zip archive "*.[hc]"
arquivaria todos os arquivos no diretório atual que terminam em .h ou .c.
Faixas de caracteres são suportadas:
zip archive "[a-f]*"
adicionaria ao arquivo todos os arquivos que começam com "a" até "f".
A negação também é suportada, onde qualquer caractere naquela posição que não esteja na lista corresponde. A negação é suportada adicionando ! ou ^ no início da lista:
zip archive "*.[!o]"
corresponde a arquivos que não terminam em ".o".
No WIN32, a correspondência de [] precisa ser ativada com a opção -RE para evitar a confusão que os nomes com [ ou ] causaram.
Quando esses caracteres são encontrados (sem serem escapados com uma barra invertida ou aspas), o shell procurará arquivos relativos ao caminho atual que correspondam ao padrão e substituirá o argumento por uma lista dos nomes que corresponderam.
O programa zip pode fazer a mesma correspondência em nomes que estão no arquivo zip que está sendo modificado ou, no caso das opções -x (excluir) ou -i (incluir), na lista de arquivos a serem operados, usando barras invertidas ou aspas para dizer ao shell para não fazer a expansão de nomes. Em geral, quando o zip encontra um nome na lista de arquivos a serem feitos, ele primeiro procura o nome no sistema de arquivos. Se ele encontrar, ele então o adiciona à lista de arquivos a serem feitos. Se não encontrar, ele procura o nome no arquivo zip que está sendo modificado (se existir), usando os caracteres de correspondência de padrões descritos acima, se presentes. Para cada correspondência, ele adicionará esse nome à lista de arquivos a serem processados, a menos que este nome corresponda a um nome fornecido com a opção -x ou não corresponda a nenhum nome fornecido com a opção -i.
O padrão de correspondência inclui o caminho, e, portanto, padrões como \\*.o correspondem a nomes que terminam em ".o", independentemente do prefixo do caminho. Observe que a barra invertida deve preceder cada caractere especial (ou seja, ?*[]), ou o argumento inteiro deve ser colocado entre aspas duplas ("").
Em geral, use barras invertidas ou aspas duplas para caminhos que tenham curingas para que o zip faça a correspondência de padrões de caminhos de arquivos e sempre para caminhos e strings que tenham espaços ou curingas para -i, -x, -R, -d e -U e em qualquer lugar que o zip precise processar os curingas.
AMBIENTE
As seguintes variáveis de ambiente são lidas e usadas pelo zip, conforme descrito.
ZIPOPT
contém opções padrão que serão usadas ao executar o zip. O conteúdo desta variável de ambiente será adicionado à linha de comando imediatamente após o comando zip.
ZIP
[Não em RISC OS e VMS] veja ZIPOPT
Zip$Options
[RISC OS] veja ZIPOPT
Zip$Exts
[RISC OS] contém extensões separadas por dois pontos que farão com que os nomes de arquivos nativos com uma das extensões especificadas sejam adicionados ao arquivo zip com o nome base e a extensão invertidos.
ZIP_OPTS
[VMS] veja ZIPOPT
VEJA TAMBÉM
compress(1), shar(1), tar(1), unzip(1), gzip(1)
DIAGNÓSTICOS
O status de saída (ou nível de erro) aproxima os códigos de saída definidos pela PKWARE e assume os seguintes valores, exceto em VMS:
0 normal; nenhum erro ou aviso detectado.
2 fim inesperado do arquivo zip.
3 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.
4 o zip não conseguiu alocar memória para um ou mais buffers durante a inicialização do programa.
5 um erro grave no formato do arquivo zip foi detectado. O processamento provavelmente falhou imediatamente.
6 entrada muito grande para ser processada (como arquivos de entrada maiores que 2 GB quando não se usa Zip64 ou ao tentar ler um arquivo existente que é muito grande) ou entrada muito grande para ser dividida com o zipsplit
7 formato de comentário inválido
8 zip -T falhou ou falta de memória
9 o usuário interrompeu o zip prematuramente com control-C (ou similar)
10 o zip encontrou um erro ao usar um arquivo temporário
11 erro de leitura ou busca
12 o arquivo zip não tem nada a ver
13 arquivo zip ausente ou vazio
14 erro ao gravar em um arquivo
15 o zip não conseguiu criar um arquivo para gravar
16 parâmetros da linha de comando inválidos
18 o zip não conseguiu abrir um arquivo especificado para leitura
19 o zip foi compilado com opções não suportadas neste sistema
VMS interpreta os valores de retorno padrão do Unix (ou PC) como coisas mais assustadoras, portanto, o zip os mapeia em códigos de status no estilo VMS. Em geral, o zip define Facility = 1955 (0x07A3), Code = 2 * Unix_status e uma Severidade apropriada (conforme especificado em ziperr.h). Mais detalhes estão incluídos na documentação específica do VMS. Consulte [.vms]NOTES.TXT e [.vms]vms_msg_gen.c.
BUGS
zip 3.0 não é compatível com PKUNZIP 1.10. Use zip 1.1 para produzir arquivos zip que podem ser extraídos pelo PKUNZIP 1.10.
Os arquivos zip produzidos pelo zip 3.0 não devem ser atualizados pelo zip 1.1 ou PKZIP 1.10, se contiverem membros criptografados ou se foram produzidos em um pipeline ou em um dispositivo não buscável. As versões mais antigas do zip ou PKZIP criariam um arquivo com um formato incorreto. As versões mais antigas podem listar o conteúdo do arquivo zip, mas não podem extraí-lo (devido ao novo algoritmo de compressão). Se você não usar criptografia e usar arquivos de disco regulares, não precisará se preocupar com esse problema.
Em VMS, nem todos os formatos de arquivo estranhos são tratados corretamente. Apenas arquivos zip no formato stream-LF devem funcionar com o zip. Outros podem ser convertidos usando o programa BILF de Rahul Dhesi. Esta versão do zip lida com algumas das conversões internamente. Ao usar o Kermit para transferir arquivos zip de VMS para MSDOS, digite "set file type block" no VMS. Ao transferir de MSDOS para VMS, digite "set file type fixed" no VMS. Em ambos os casos, digite "set file type binary" no MSDOS.
Em algumas versões mais antigas do VMS, o zip pode travar para especificações de arquivo que usam a sintaxe DECnet foo::*.*.
No OS/2, o zip não pode corresponder a alguns nomes, como aqueles que incluem um ponto de exclamação ou um sinal de hashtag. Este é um bug no próprio OS/2: os comandos 32 bits DosFindFirst/Next não encontram esses nomes. Outros programas, como o GNU tar, também são afetados por este bug.
No OS/2, a quantidade de Atributos Estendidos exibida pelo DIR é (para compatibilidade) a quantidade retornada pela versão de 16 bits do DosQueryPathInfo(). Caso contrário, o OS/2 1.3 e 2.0 relatariam tamanhos de EA diferentes ao listar um arquivo. No entanto, o layout da estrutura retornado pelo DosQueryPathInfo() de 32 bits é um pouco diferente, ele usa bytes de preenchimento extras e ponteiros de link (é uma lista vinculada) para ter todos os campos em limites de 4 bytes para portabilidade para versões futuras do OS/2. Portanto, o valor relatado pelo zip (que usa este formato de 32 bits) difere daquele relatado pelo DIR. O zip armazena o formato de 32 bits para portabilidade, mesmo a versão compilada em MS-C de 16 bits executada no OS/2 1.3, para que até mesmo esta mostre o tamanho do modo de 32 bits.
AUTORES
Copyright (C) 1997-2008 Info-ZIP.
Atualmente distribuído sob a licença Info-ZIP.
Copyright (C) 1990-1997 Mark Adler, Richard B. Wales, Jean-loup Gailly, Onno van der Linden, Kai Uwe Rommel, Igor Mandrichenko, John Bush e Paul Kienitz.
Copyright original:
É concedido a qualquer indivíduo ou instituição o direito de usar, copiar ou redistribuir este software, desde que todos os arquivos originais sejam incluídos, que não seja vendido para obter lucro e que este aviso de direitos autorais seja mantido.
COMO QUALQUER OUTRA COISA QUE É GRATUITA, O ZIP E SEUS UTILITÁRIOS ASSOCIADOS SÃO FORNECIDOS "COMO ESTÃO" E VEM SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA. EM NENHUM CASO OS DETENTORES DOS DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUAISQUER DANOS RESULTANTES DO USO DESTE SOFTWARE.
Envie relatórios de bugs e comentários usando a página da web em: www.info-zip.org. Para relatórios de bugs, inclua a versão do zip (veja zip -h), as opções de compilação usadas para compilá-lo (veja zip -v), a máquina e o sistema operacional em uso e o máximo de informações adicionais possível.
AGRADECIMENTOS
Agradecemos a R. P. Byrne por seu programa Shrink.Pas, que inspirou este projeto e do qual o algoritmo de compressão foi "roubado"; a Phil Katz por colocar o formato de arquivo zip, o formato de compressão e a extensão de nome de arquivo .ZIP em domínio público e por aceitar pequenas alterações no formato de arquivo; a Steve Burg por esclarecimentos sobre o formato deflate; a Haruhiko Okumura e Leonid Broukhis por fornecerem algumas ideias úteis para o algoritmo de compressão; a Keith Petersen, Rich Wales, Hunter Goatley e Mark Adler por fornecerem uma lista de discussão e um site ftp para o grupo Info-ZIP usar; e, o mais importante, ao próprio grupo Info-ZIP (listado no arquivo infozip.who), sem cujo esforço incansável de teste e correção de bugs um zip portátil não teria sido possível. Finalmente, devemos agradecer (culpar) o primeiro moderador do Info-ZIP, David Kirschbaum, por nos colocar nesta confusão. A página do manual foi reescrita para Unix por R. P. C. Rodgers e atualizada por E. Gordon para o zip 3.0.