Como substituir um arquivo em um zip

Como substituir um arquivo em um zip

Estou trabalhando com *.jararquivos, pelo que entendi, é um formato de arquivo que posso manipular com ferramentas padrão como zipou unzipcomandos.

Muitas vezes preciso substituir um arquivo já compactado. Até agora eu descompactei, apaguei o arquivo antigo, movi o novo para o lugar certo (é um arquivo fonte, então éaltamente em camadas), e então eu o compactei novamente.

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

Responder1

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/pathparte 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 adquirir o hábito de usá-los jarna zipmedida 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, em vez do jarcomando acima, use:

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

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

informação relacionada