<Anterior | Conteúdo | Próxima>
zip
O zip programa é uma ferramenta de compressão e um arquivador. O formato de arquivo usado pelo programa é familiar aos usuários do Windows, uma vez que lê e escreve .zip arquivos. No Linux, entretanto, gzip é o programa de compressão predominante com bzip2 sendo um segundo próximo.
Em seu uso mais básico, zip é invocado assim:
zip opções arquivo zipfile ...
Por exemplo, para fazer um arquivo zip de nosso playground, faríamos o seguinte:
[me @ linuxbox ~] $ zip -r playground.zip playground
[me @ linuxbox ~] $ zip -r playground.zip playground
A menos que incluamos o -r opção de recursão, apenas o recreio diretório (mas nenhum de seus conteúdos) é armazenado. Embora a adição da extensão .zip é automático, incluiremos a extensão do arquivo para maior clareza.
Durante a criação do arquivo zip, zip normalmente exibirá uma série de mensagens como esta:
adicionando: playground / dir-020 / arquivo-Z (armazenado 0%) adicionando: playground / dir-020 / arquivo-Y (armazenado 0%) adicionando: playground / dir-020 / arquivo-X (armazenado 0%) adicionando: playground / dir-087 / (armazenado 0%) adicionando: playground / dir-087 / arquivo-S (armazenado 0%)
adicionando: playground / dir-020 / arquivo-Z (armazenado 0%) adicionando: playground / dir-020 / arquivo-Y (armazenado 0%) adicionando: playground / dir-020 / arquivo-X (armazenado 0%) adicionando: playground / dir-087 / (armazenado 0%) adicionando: playground / dir-087 / arquivo-S (armazenado 0%)
Essas mensagens mostram o status de cada arquivo adicionado ao arquivo. zip irá adicionar arquivos ao arquivo usando um de dois métodos de armazenamento: Ou irá “armazenar” um arquivo sem compressão, como mostrado aqui, ou irá “esvaziar” o arquivo que executa a compressão. O valor numérico exibido após o método de armazenamento indica a quantidade de compressão alcançada. Como nosso playground contém apenas arquivos vazios, nenhuma compactação é realizada em seu conteúdo.
Extrair o conteúdo de um arquivo zip é simples ao usar o descompactar programa:
[me @ linuxbox ~] $ cd foo
[me @ linuxbox foo] $ descompacte ../playground.zip
[me @ linuxbox ~] $ cd foo
[me @ linuxbox foo] $ descompacte ../playground.zip
Uma coisa a se notar sobre zip (em oposição a alcatrão) é que, se um arquivo existente for especificado, ele será atualizado em vez de substituído. Isso significa que o arquivo existente é preservado, mas novos arquivos são adicionados e os arquivos correspondentes são substituídos.
Os arquivos podem ser listados e extraídos seletivamente de um arquivo zip, especificando-os para
../playground.zip
../playground.zip
Data
----
Data
----
Tempo
----
Tempo
----
10-05-16 09:25
10-05-16 09:25
descompactar:
[me @ linuxbox ~] $ descompacte -l playground.zip playground / dir-087 / arquivo-Z
[me @ linuxbox ~] $ descompacte -l playground.zip playground / dir-087 / arquivo-Z
Arquivo:
Comprimento
--------
0
--------
0
Nome
----
playground / dir-087 / arquivo-Z
-------
Arquivo 1
Arquivo:
Comprimento
--------
0
--------
0
[me @ linuxbox ~] $ cd foo
[me @ linuxbox foo] $ descompacte ../playground.zip playground / dir-087 / file-Z
Arquivo: ../playground.zip
substituir playground / dir-087 / file-Z? [s] es, [n] o, [A] ll, [N] um, [r] ename: y
extraindo: playground / dir-087 / file-Z
[me @ linuxbox ~] $ cd foo
[me @ linuxbox foo] $ descompacte ../playground.zip playground / dir-087 / file-Z
Arquivo: ../playground.zip
substituir playground / dir-087 / file-Z? [s] es, [n] o, [A] ll, [N] um, [r] ename: y
extraindo: playground / dir-087 / file-Z
Com o -l opção causa descompactar para simplesmente listar o conteúdo do arquivo sem extrair o arquivo. Se nenhum arquivo for especificado, descompactar irá listar todos os arquivos no arquivo. o -v opção pode ser adicionada para aumentar o detalhamento da listagem. Observe que, quando a extração do arquivo entra em conflito com um arquivo existente, o usuário é avisado antes de o arquivo ser substituído.
Como alcatrão, zip pode fazer uso de entrada e saída padrão, embora sua implementação seja um pouco menos útil. É possível canalizar uma lista de nomes de arquivos para zip via -@ opção:
[me @ linuxbox foo] $ cd
[me @ linuxbox ~] $ localizar playground -name "arquivo-A" | zip - @ file-A.zip
[me @ linuxbox foo] $ cd
[me @ linuxbox ~] $ localizar playground -name "arquivo-A" | zip - @ file-A.zip
Aqui usamos find para gerar uma lista de arquivos que correspondem ao teste -name "arquivo-A"e, em seguida, canalize a lista para zip, que cria o arquivo arquivo-A.zip contendo os arquivos selecionados.
O zip também suporta a gravação de sua saída na saída padrão, mas seu uso é limitado porque poucos programas podem fazer uso da saída. Infelizmente, o programa de descompactação não aceita entrada padrão. Isso evita que zip e unzip sejam usados juntos para realizar
formulário de cópia de arquivo de rede como alcatrão.
O zip pode, no entanto, aceitar entrada padrão, portanto, pode ser usado para compactar a saída de outros programas:
[me @ linuxbox ~] $ ls -l / etc / | zip ls-etc.zip -
adicionando: - (desinflado 80%)
[me @ linuxbox ~] $ ls -l / etc / | zip ls-etc.zip -
adicionando: - (desinflado 80%)
Neste exemplo, canalizamos a saída de ls para dentro zip. Como alcatrão, zip interpreta o traço final como “usar entrada padrão para o arquivo de entrada”.
O descompactar programa permite que sua saída seja enviada para a saída padrão quando o -p (para tubo) a opção é especificada:
[me @ linuxbox ~] $ descompacte -p ls-etc.zip | menos
[me @ linuxbox ~] $ descompacte -p ls-etc.zip | menos
Abordamos algumas das coisas básicas que zip/descompactar pode fazer. Ambos têm várias opções que aumentam sua flexibilidade, embora algumas sejam específicas de plataforma para outros sistemas. As páginas do manual para ambos zip e descompactar são muito bons e contêm exemplos úteis. No entanto, o uso principal desses programas é para a troca de arquivos com sistemas Windows, ao invés de realizar compactação e arquivamento no Linux, onde alcatrão e gzip são muito preferidos.