Linux: Zip größer als 4 GB

11

Ich erhalte eine Fehlermeldung, wenn ich versuche, eine große Datei unter Linux zu komprimieren, da sie zu groß ist, als dass zip sie verarbeiten könnte. Weiß jemand, mit welchen Befehlen ich das umgehen kann?

Dies ist der Fehler, den ich bekomme:

zip error: Entry too big to split, read, or write (file exceeds Zip's 4GB uncompressed size limit)

Es ist eine einfache Textdatei, in der Tat eine Protokolldatei.

Matt Rogers
quelle
3
Verwenden Sie stattdessen tar + gzip.
Mondschatten
1
Teilen Sie die Datei einfach in 1-GB-Blöcke auf und komprimieren Sie diese. Oder verwenden Sie einen modernen Komprimierungsalgorithmus. In Ihrem Fall benötigen Sie kein Archivformat.

Antworten:

7

Verwenden Sie den Befehl linux split, um Ihre Protokolldatei in kleinere Dateien zu zerlegen.

und überlegen Sie, ob Sie das Protokoll drehen möchten, damit dies nicht erneut geschieht.

David Chan
quelle
2
Fügen Sie dies einfach hinzu, um andere Benutzer zu unterstützen, wenn sie danach suchen. Ich habe diesen Befehl verwendet, um die Datei in 1-GB-Slices aufzuteilen: split -b 1024m access_log2 access_log_
Matt Rogers
15

Das grundlegende Zip-Format ist auf 4 GB pro Datei begrenzt. Sie müssen Ihr zipTool auf ein Tool aktualisieren , das Zip64 unterstützt:

$ zip -v
Copyright (c) 1990-2008 Info-ZIP - Geben Sie 'zip "-L"' für die Softwarelizenz ein.
Dies ist Zip 3.0 (5. Juli 2008) von Info-ZIP.
...

Zip spezielle Kompilierungsoptionen:
        ...
        ZIP64_SUPPORT (verwenden Sie Zip64, um große Dateien in Archiven zu speichern)

Alternativ können Sie ein anderes Archivformat wie 7z oder tar verwenden .

user1686
quelle