Como substituir um arquivo em um zip

1

Estou trabalhando com *.jar arquivos, tanto quanto eu entendo é um formato de arquivo que posso manipular com ferramentas padrão como zip ou unzip comandos.

Muitas vezes preciso substituir um arquivo já compactado. Até agora eu descompactei, deletei o arquivo antigo, movi o novo para o bom lugar (é um arquivo fonte, então ele é hightly layered ), e então eu o re-comprimido.

É possível fazer isso mais rapidamente? Seriam 3 informações: o arquivo a substituir, o arquivo de destino a ser substituído e o caminho para o arquivo a ser substituído no arquivo.

    
por Fractaliste 11.04.2017 / 11:46

1 resposta

3

Você pode fazer isso em duas etapas:

zip -d myjar.jar path/to/file/to/delete
jar uf myjar.jar -C base/path path/to/file/to/add

Você pode ignorar a -C base/path parte se já estiver no diretório base (contendo path/to/file/to/add ).

Ao trabalhar com JARs em vez de arquivos ZIP simples, você deve ter o hábito de usar jar em vez de zip na medida do possível; garante que o manifesto seja armazenado corretamente.

Com um arquivo ZIP simples, você pode adicionar ou atualizar um arquivo simplesmente (re-) arquivando-o; então, ao invés do comando jar acima, use:

zip myzip.zip path/to/file/to/add

Você precisa estar no diretório base para que isso funcione. ( jar funcionará também, mas é estranho exigir jar ao trabalhar com arquivos ZIP.)

    
por 11.04.2017 / 13:06

Tags