So ersetzen Sie eine Datei in einer ZIP-Datei

So ersetzen Sie eine Datei in einer ZIP-Datei

Ich arbeite mit *.jarDateien. Soweit ich weiß, handelt es sich um ein Archivformat, das ich mit Standardtools wie zipoder unzip-Befehlen bearbeiten kann.

Ich muss oft eine bereits komprimierte Datei ersetzen. Bisher entpacke ich die alte Datei, lösche sie und verschiebe die neue an den richtigen Ort (es ist ein Quellarchiv, alsohochschichtig), und dann habe ich es erneut komprimiert.

Ist es möglich, dies schneller zu machen? Es wären 3 Informationen erforderlich: die zu ersetzende Datei, das Zielarchiv, in dem ersetzt werden soll, und der Pfad zur zu ersetzenden Datei im Archiv.

Antwort1

Sie können dies in zwei Schritten tun:

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

Sie können den Teil ignorieren -C base/path, wenn Sie sich bereits im Basisverzeichnis befinden (das enthält path/to/file/to/add).

Wenn Sie mit JARs statt mit einfachen ZIP-Dateien arbeiten, sollten Sie sich angewöhnen, soweit möglich jar„anstelle von“ zu verwenden. Dadurch wird sichergestellt, dass das Manifest korrekt gespeichert wird.zip

Bei einer einfachen ZIP-Datei können Sie eine Datei hinzufügen oder aktualisieren, indem Sie sie einfach (erneut) archivieren. Verwenden Sie daher anstelle des jarobigen Befehls:

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

Damit dies funktioniert, müssen Sie sich im Basisverzeichnis befinden. ( jarfunktioniert auch, ist aber jarbeim Arbeiten mit ZIP-Dateien merkwürdigerweise erforderlich.)

verwandte Informationen