Bagaimana cara membagi file .zip menjadi beberapa segmen?


27

Saya memiliki semua utilitas baris perintah yang diinstal, dan perlu membagi .zipfile (atau) yang baru menjadi (50MB) .zipsegmen di Terminal.

yaitu Folder X = 900MB> Buat .ziparsip ekstraksi diri > Pisahkan .ziparsip menjadi Segmen 50MB (yaitu Folder.X.001.zip)

Menurut halaman manual di sini adalah perintah:

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

dengan -h2saya dapatkan:

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

Jawaban:


39

Anda memiliki existing.ziptetapi ingin membaginya menjadi 50Mbagian-bagian berukuran.

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

akan membuat

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

Untuk mengekstraknya, pertama-tama Anda harus mengumpulkan file dan menjalankannya , zip -F new.zip --out existing.zipatau zip -s0 new.zip --out existing.zipuntuk membuat ulang file Anda existing.zip. Maka Anda bisa saja unzip existing.zip.


Anda harapkan unzip new.zipakan bekerja, tetapi sayangnya itu tidak diterapkan

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).

dan dalam pengujian saya, menggabungkan bagian-bagian seperti yang disarankan, yaitu dengan cat, dan menjalankan unzip, gagal mengekstrak semua file saya .


1
Saya dapat mengekstraksi data saya dari file zip .zip (dibuat dengan Zip 3.0 pada baris perintah Mac OS X 10.11) menggunakan 7-Zip yang berjalan pada Windows di mesin virtual. Saya baru saja menunjuk 7-Zip pada file new.zip di folder bersama dan itu berfungsi seperti pesona.
User5910

3
Meskipun Anda tidak bisa begitu saja menggunakan unzip new.zip, Anda bisa mengklik new.zipdi macOS dan semuanya berfungsi. Terima kasih!
Dan Rosenstark

4

Inilah yang bekerja untuk saya:

zip -s 50m new.zip big.iso

Untuk bagian 50MG

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

Buat potongan-potongan 3G dengan ini (baik untuk meletakkan file besar pada disk FAT32)

zip -s 3g new.zip big.iso

OS Mac baru mengekstrak file-file ini ketika mengklik dua kali file new.zip


2
Mengklik dua kali file zip pada mac os 10.13.6 High Sierra tidak membuka kompresi arsip asli untuk saya. Saya harus menggunakan aplikasi 'The unarchiver' dari itunes.apple.com/us/app/the-unarchiver/id425424353
user674669

1
Saya telah membagi file zip yang dibuat oleh 7zip di windows, yang berakhir dengan skema penamaan file yang berbeda. Unarchiver juga bisa mengekstraknya!
Maks

0

Saya harus menggunakan Unarchiver untuk mengekstrak file ZIP multipart yang dihasilkan juga, tetapi anehnya, itu menciptakan jalur asli ke file zip. misalnya saya awalnya membuat arsip di sini:

/ Volume / HD Eksternal / Folder Tes / my-multipart-archive-parts.zip

Dan menyalin semua bagian arsip ke sini:

~ / Desktop / Test Folder /

Ketika saya menggunakan Unarchiver untuk mengekstrak file, itu menciptakan ini:

~ / Desktop / Test Folder / Volume / HD Eksternal / Folder Test / my-multipart-archive.zip

Sangat aneh...

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.