Ich habe ein Skript, das Dateien aus einem Ordner komprimiert. Ich möchte sicherstellen, dass die komprimierte Datei nicht größer als 10 MB ist. Wenn die Größe mehr als 10 MB beträgt, sollte eine weitere ZIP-Datei erstellt werden.
Gibt es einen Befehl (oder eine andere Methode), der dafür verwendet werden kann?
Antworten:
Mit der Option " --split-size " können Sie die " split archive " -Funktionalität von " zip " selbst nutzen .
Aus der Manpage "zip" ("
man zip
"):So erstellen eine Split Zip - Archiv , könnten Sie wie folgt vorgehen (die „
-r
“ ist die „rekursiven“ -Schalter auf Verzeichnisse des Verzeichnisses enthalten):$ zip -r -s 10m archive.zip directory/
Um die Datei zu "
zip
" entpacken , wird in der Manpage erklärt, dass Sie den Schalter "-s 0`" verwenden sollten:Sie "trennen" also zuerst die ZIP-Datei mit dem Schalter "-s 0":
$ zip -s 0 archive.zip --out unsplit.zip
... und dann entpacken Sie die unsplit-Datei:
$ unzip unsplit.zip
quelle
Gibt Ihnen eine Reihe von Dateien:
Was dann dekomprimiert werden kann mit:
quelle
Hier ist, wie ich es für eine 5-GB-Datei gemacht habe (aufgeteilt in 1 GB vs 10 MB als OP gefragt) ...
Beispiel: ein Auftrennen 5GB - Datei in 1GB - Dateien auf einen FAT32 - USB (Dateinamen „FIVE_GB_FILE.ISO“) kopieren
Schritt 1: Komprimieren Sie die Datei (keine Komprimierung, dasselbe Verzeichnis wie die Quelle)
Schritt 2 : Teilen Sie die 5- GB-Zip-Datei in 1-GB-Zip-Dateien auf
Voila ... Sie sollten die folgenden 1 GB-Dateien haben (UND das Original UND die Zip-Datei aus Schritt 1)
quelle