Cómo reemplazar un archivo en un zip

Cómo reemplazar un archivo en un zip

Estoy trabajando con *.jararchivos, hasta donde tengo entendido, es un formato de archivo que puedo manipular con herramientas estándar como comandos zipo unzip.

A menudo necesito reemplazar un archivo ya comprimido. Hasta ahora lo descomprimo, elimino el archivo antiguo, muevo el nuevo al lugar adecuado (es un archivo fuente, por lo que esmuy en capas), y luego lo volví a comprimir.

¿Es posible hacerlo más rápido? Serían 3 informaciones: el archivo a reemplazar, el archivo de destino en el que reemplazar y la ruta al archivo que se reemplazará en el archivo.

Respuesta1

Puedes hacerlo en dos pasos:

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

Puedes ignorar la -C base/pathparte si ya estás en el directorio base (que contiene path/to/file/to/add).

Cuando trabaje con archivos JAR en lugar de archivos ZIP simples, debe acostumbrarse a utilizar jaren lugar de zipen la medida de lo posible; garantiza que el manifiesto se almacene correctamente.

Con un archivo ZIP simple, puede agregar o actualizar un archivo simplemente (re)archivándolo; entonces, en lugar del jarcomando anterior, use:

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

Debes estar en el directorio base para que esto funcione. ( jarTambién funcionará, pero es extraño que sea necesario jarcuando se trabaja con archivos ZIP).

información relacionada