Wenn ein komprimiertes Archiv mit Tausenden von Dateien darin enthalten ist, was ist der beste Weg, Dateien darin aus einem Shell-Skript zu löschen/ersetzen?Wie erstellt man Archive unter Linux, die das Ersetzen/Löschen von Dateien unterstützen?
tar unterstützt nicht den Austausch von Dateien im Archiv, und "dekomprimieren und erneut komprimieren" Weg zum Ersetzen einer einzigen Datei in einem großen Archiv scheint nicht der optimale Weg.
xz wie es scheint, unterstützt diese Option auch nicht.
7z ist auch nicht für diese Aufgabe geeignet (Man Seite für 7z empfiehlt nicht, es für die Komprimierung einzelner Dateien zu verwenden, nur zum Komprimieren von TAR-Dateien, aufgrund von Problemen mit Dateiinhaber/Gruppe Informationen zu erhalten).
pax hat auch keine Optionen zum Löschen/Ersetzen von Dateien im Archiv.
Gibt es unter Linux eine gängige Methode zum Erstellen solcher Archive über die Befehlszeile?
Es gibt keinen optimalen Weg, nur einige mittelmäßige bis schlechte Wege. –
Warum muss es ein Archiv sein? Wenn Sie Dateien löschen/ersetzen müssen, sind Sounds wie ein Archiv nicht der richtige Weg. – Pavel
Dieses Problem ist allgemeiner als Sie denken, und es existiert auch auf jeder anderen Plattform. Wenn Sie mehrere Dateien in ein einziges Archiv komprimieren, ist das Entfernen (oder Aktualisieren) eine teure Operation (weil Sie alles entpacken, das Update durchführen oder löschen und dann alles komprimieren müssen). Sonst ist es * kein gültiges Archiv mehr. –