Wie teile ich eine ZIP-Datei in mehrere Segmente auf?


27

Ich habe alle Befehlszeilentools installiert und muss eine vorhandene .zip(oder neue) Datei (en) in (50 MB) .zipSegmente in Terminal aufteilen .

dh Ordner X = 900MB> Selbstextrahierendes .zipArchiv erstellen > .zipArchiv in 50MB Segmente aufteilen (dh Folder.X.001.zip)

Laut Manpage sind hier die Befehle:

Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license.
Zip 3.0 (July 5th 2008). Usage:
zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]
  The default action is to add or replace zipfile entries from list, which
  can include the special name - to compress standard input.
  If zipfile and list are omitted, zip compresses stdin to stdout.
  -f   freshen: only changed files  -u   update: only changed or new files
  -d   delete entries in zipfile    -m   move into zipfile (delete OS files)
  -r   recurse into directories     -j   junk (don't record) directory names
  -0   store only                   -l   convert LF to CR LF (-ll CR LF to LF)
  -1   compress faster              -9   compress better
  -q   quiet operation              -v   verbose operation/print version info
  -c   add one-line comments        -z   add zipfile comment
  -@   read names from stdin        -o   make zipfile as old as latest entry
  -x   exclude the following names  -i   include only the following names
  -F   fix zipfile (-FF try harder) -D   do not add directory entries
  -A   adjust self-extracting exe   -J   junk zipfile prefix (unzipsfx)
  -T   test zipfile integrity       -X   eXclude eXtra file attributes
  -y   store symbolic links as the link instead of the referenced file
  -e   encrypt                      -n   don't compress these suffixes
  -h2  show more help

mit -h2bekomme ich:

Splits (archives created as a set of split files):
  -s ssize  create split archive with splits of size ssize, where ssize nm
              n number and m multiplier (kmgt, default m), 100k -> 100 kB
  -sp       pause after each split closed to allow changing disks
      WARNING:  Archives created with -sp use data descriptors and should
                work with most unzips but may not work with some
  -sb       ring bell when pause
  -sv       be verbose about creating splits
      Split archives CANNOT be updated, but see --out and Copy Mode below

.....

Using --out (output to new archive):
  --out oa  output to new archive oa
  Instead of updating input archive, create new output archive oa.
  Result is same as without --out but in new archive.  Input archive
  unchanged.
      WARNING:  --out ALWAYS overwrites any existing output file
  For example, to create new_archive like old_archive but add newfile1
  and newfile2:
    zip old_archive newfile1 newfile2 --out new_archive
  Cannot update split archive, so use --out to out new archive:
    zip in_split_archive newfile1 newfile2 --out out_split_archive
  If input is split, output will default to same split size
  Use -s=0 or -s- to turn off splitting to convert split to single file:
    zip in_split_archive -s 0 --out out_single_file_archive
      WARNING:  If overwriting old split archive but need less splits,
                old splits not overwritten are not needed but remain

Antworten:


39

Sie haben existing.zipaber möchten es in 50Mgroße Teile aufteilen .

zip existing.zip --out new.zip -s 50m

wird erschaffen

new.zip
new.z01
new.z02
new.z03
....

Um sie zu extrahieren, sollten Sie zuerst die Dateien zusammenstellen und ausführen zip -F new.zip --out existing.zipoder zip -s0 new.zip --out existing.zip, um Ihre neu zu erstellen existing.zip. Dann kannst du einfach unzip existing.zip.


Sie würden erwarten, unzip new.zipwürde funktionieren, aber leider ist es nicht implementiert

warning [new.zip]:  zipfile claims to be last disk of a multi-part archive;
  attempting to process anyway, assuming all parts have been concatenated
  together in order.  Expect "errors" and warnings...true multi-part support
  doesn't exist yet (coming soon).

und in meinen Tests konnte das Verketten der Teile, wie es nahe legt, dh mit cat und das Ausführen von unzip, nicht alle meine Dateien extrahieren .


1
Ich konnte meine Daten aus den aufgeteilten ZIP-Dateien (die mit Zip 3.0 auf der Mac OS X 10.11-Befehlszeile erstellt wurden) mithilfe von 7-Zip extrahieren, das unter Windows auf einer virtuellen Maschine ausgeführt wird. Ich habe gerade 7-Zip auf die Datei new.zip in einem freigegebenen Ordner gezeigt und es hat wie ein Zauber funktioniert.
User5910

3
Während Sie nicht einfach verwenden können unzip new.zip, können Sie new.zipin macOS einfach auf klicken und alles funktioniert. Vielen Dank!
Dan Rosenstark

4

Das funktioniert bei mir:

zip -s 50m new.zip big.iso

Für 50MG Teile

new.zip
new.z01
new.z02
...

Erstellen Sie damit 3G-Chuncks (gut zum Speichern großer Dateien auf einer FAT32-Festplatte)

zip -s 3g new.zip big.iso

Neue Mac OS extrahieren diese Dateien, wenn Sie auf die Datei new.zip doppelklicken


2
Ein Doppelklick auf die Zip-Datei unter Mac OS 10.13.6 High Sierra hat das ursprüngliche Archiv für mich nicht dekomprimiert. Ich musste die App 'The unarchiver' von itunes.apple.com/us/app/the-unarchiver/id425424353
user674669

1
Ich hatte eine geteilte Zip-Datei, die von 7zip unter Windows erstellt wurde, was zu einem anderen Dateibenennungsschema führte. Unarchiver konnte das auch extrahieren!
Max

0

Ich musste Unarchiver verwenden, um die resultierende mehrteilige ZIP-Datei ebenfalls zu extrahieren, aber seltsamerweise wurde der ursprüngliche Pfad zur ZIP-Datei wiederhergestellt. zB habe ich das Archiv ursprünglich hier erstellt:

/ Volumes / Externe HD / Testordner / my-multipart-archive-parts.zip

Und alle Teile des Archivs hierher kopiert:

~ / Desktop / Testordner /

Als ich Unarchiver zum Extrahieren der Dateien verwendete, erstellte es Folgendes:

~ / Desktop / Testordner / Volumes / External HD / Testordner / my-multipart-archive.zip

Sehr komisch...

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.