Guia do Linux/Iniciante+Intermediário/Compactadores/zip

Utilitário de compactação compatí­vel com pkzip (do DOS) e trabalha com arquivos de extensão .zip. Possui uma ótima taxa de compactação e velocidade no processamento dos arquivos compactados (comparando-se ao gzip).

zip [opções] [arquivo-destino] [arquivos-origem]

Onde:

arquivo-destino
Nome do arquivo compactado que será gerado.
arquivos-origem
Arquivos/Diretórios que serão compactados. Podem ser usados curingas para especificar mais de um arquivo de uma só vez (veja [ch-bas.html#s-basico-curingas Curingas, Seção 2.12]).
opções
-r
Compacta arquivos e sub-diretórios.
-e
Permite encriptar o conteúdo de um arquivo .zip através de senha. A senha será pedida no momento da compactação.
-f
Somente substitui um arquivo compactado existente dentro do arquivo .zip somente se a versão é mais nova que a atual. Não acrescenta arquivos ao arquivo compactado. Deve ser executado no mesmo diretório onde o programa zip foi executado anteriormente.
-F
Repara um arquivo .zip danificado.
-[NUM]
Ajusta a qualidade/velocidade da compactação. Pode ser especificado um número de 1 a 9. O 1 permite mí­nima compactação e máxima velocidade, 9 permite uma melhor compactação e menor velocidade.
-i [arquivos]
Compacta somente os [arquivos] especificados.
-j
Se especificado, não armazena caminhos de diretórios.
-m
Apaga os arquivos originais após a compactação.
-T [arquivo]
Procura por erros em um arquivo .zip. Caso sejam detectados problemas, utilize a opção -F para corrigi-los.
-y
Armazena links simbólicos no arquivo .zip. Por padrão, os links simbólicos são ignorados durante a compactação.
-k [arquivo]
Modifica o [arquivo] para ter compatibilidade total com o pkzip do DOS.
-l
Converte saltos de linha UNIX (LF) para o formato CR LF (usados pelo DOS). Use esta opção com arquivos Texto.
-ll
Converte saltos de linha DOS (CR LF) para o formato UNIX (LF). Use esta opção com arquivos texto.
-n [extensão]
Não compacta arquivos identificados por [extensão]. Ele é armazenado sem compactação no arquivo .zip, muito útil para uso com arquivos já compactados.

Caso sejam especificados diversas extensões de arquivos, elas devem ser separadas por : - Por exemplo, zip -n .zip:.tgz arquivo.zip *.txt.

-q
Não mostra mensagens durante a compactação do arquivo.
-u
Atualiza/adiciona arquivos ao arquivo .zip
-X
Não armazena detalhes de permissões, UID, GID e datas dos arquivos.
-z
Permite incluir um comentário no arquivo .zip.

Caso o nome de arquivo de destino não termine com .zip, esta extensão será automaticamente adicionada. Para a descompactação de arquivos .zip no GNU/Linux, é necessário o uso do utilitário unzip. Exemplos:

  • zip textos.zip *.txt - Compacta todos os arquivos com a extensão .txt para o arquivo textos.zip (compare o tamanho do arquivo compactado digitando ls -la).
  • zip -r textos.zip /usr/*.txt - Compacta todos os arquivos com a extensão .txt do diretório /usr e sub-diretórios para o arquivo textos.zip.
  • zip -9 textos.zip * - Compacta todos os arquivos do diretório atual usando a compactação máxima para o arquivo textos.zip.
  • zip -T textos.zip - Verifica se o arquivo textos.zip contém erros.