Ich habe eine große .gz-Datei. Ich möchte es in 100 kleinere gzip-Dateien aufteilen, die jeweils für sich dekomprimiert werden können. Mit anderen Worten: Ich suche nicht nach einer Möglichkeit, die .gz-Datei in Blöcke zu zerlegen, die wieder zusammengesetzt werden müssten, um sie dekomprimieren zu können. Ich möchte in der Lage sein, jede der kleineren Dateien unabhängig voneinander zu dekomprimieren.
Kann es gemacht werden, ohne die gesamte Datei erneut zu komprimieren?
Kann es gemacht werden, wenn die Originaldatei mit komprimiert ist --rsyncable
? ("Stellen Sie das rsync-Programm besser in Frage, indem Sie die interne Struktur des komprimierten Datenstroms regelmäßig zurücksetzen."
Kann es für eines der anderen komprimierten Formate durchgeführt werden? Ich würde mir vorstellen, bzip2
wäre machbar - da es in Blöcken komprimiert ist.
gzip --rsyncable
, da „gunzip den Unterschied nicht erkennen kann“ (wenn Sie einen Ort zum Teilen finden könnten, könnten Sie sagen, dass es einen Ort zum Teilen gibt). Es könnte mit bzip2 wegen seiner besonderen Blockfunktion machbar sein.gzip -d -c bigfile.gz
.bzip2
tatsächlich mit einer Datei möglich. Dies wäre mitgz
oderxz
nur durch unabhängiges Komprimieren jedes Blocks möglich, sodass eine erneute Komprimierung erforderlich wäre.Antworten:
Das Teilen und Zusammenfügen der großen Datei funktioniert, es ist jedoch unmöglich, Teile der komprimierten Datei zu dekomprimieren, da wichtige Informationen über den gesamten Datensatz verteilt sind. Ein anderer Weg; Teilen Sie die unkomprimierte Datei und komprimieren Sie die einzelnen Teile. Jetzt können Sie jedes Stück dekomprimieren. Aber warum? Sie müssen alle dekomprimierten Teile vor der weiteren Verarbeitung zusammenführen.
quelle
gzip
oderxz
) haben, können Sie Verkettung und Dekomprimierung oder Dekomprimierung und Verkettung durchführen. Die Reihenfolge spielt keine Rolle.