ฉันจะแบ่งไฟล์. zip เป็นหลายเซ็กเมนต์ได้อย่างไร


27

ฉันได้ติดตั้ง utline บรรทัดคำสั่งทั้งหมดแล้วและต้องแยกไฟล์ที่มีอยู่.zip(หรือ) ไฟล์ใหม่ออกเป็น.zipเซ็กเมนต์(50MB) ในเทอร์มินัล

เช่นโฟลเดอร์ X = 900MB> สร้าง self ที่แยก.zipเก็บ> Split .zipเก็บเป็นส่วน 50MB (คือFolder.X.001.zip)

ตามหน้า man ที่นี่คือคำสั่ง:

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

กับ-h2ฉันได้รับ:

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

คำตอบ:


39

คุณมีexisting.zipแต่ต้องการที่จะแยกมันออกเป็น50Mชิ้นส่วนขนาดใหญ่

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

จะสร้าง

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

เพื่อดึงพวกเขาครั้งแรกที่คุณควรเก็บไฟล์ร่วมกันและการทำงานzip -F new.zip --out existing.zipหรือเพื่อสร้างของคุณzip -s0 new.zip --out existing.zip จากนั้นคุณก็สามารถexisting.zipunzip existing.zip


คุณคาดหวังว่าunzip new.zipจะได้ผล แต่น่าเสียดายที่มันยังไม่ได้ใช้

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

และในการทดสอบของฉันการต่อชิ้นส่วนตามที่แนะนำเช่นกับ cat และการเปิดเครื่องรูดไม่สามารถแตกไฟล์ทั้งหมดของฉันได้


1
ฉันสามารถดึงข้อมูลของฉันจากไฟล์. zip แบบแยก (สร้างด้วย Zip 3.0 บนบรรทัดคำสั่ง Mac OS X 10.11) โดยใช้ 7-Zip ที่ทำงานบน Windows ในเครื่องเสมือน ฉันเพิ่งชี้ 7-Zip ไปที่ไฟล์new.zipในโฟลเดอร์แชร์และใช้งานได้อย่างมีเสน่ห์
User5910

3
แม้ว่าคุณจะไม่สามารถใช้งานได้อย่างง่ายดายunzip new.zipแต่คุณสามารถคลิกnew.zipใน macOS และใช้งานได้ทั้งหมด ขอบคุณ!
Dan Rosenstark

4

นี่คือสิ่งที่ได้ผลสำหรับฉัน:

zip -s 50m new.zip big.iso

สำหรับชิ้นส่วน 50MG

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

สร้าง chuncks ของ 3G ด้วยสิ่งนี้ (ดีสำหรับการวางไฟล์ขนาดใหญ่บนดิสก์ FAT32)

zip -s 3g new.zip big.iso

Mac OS ใหม่จะแตกไฟล์เหล่านี้เมื่อดับเบิลคลิกที่ไฟล์ new.zip


2
การคลิกสองครั้งที่ไฟล์ zip บน mac os 10.13.6 High Sierra ไม่ได้บีบอัดไฟล์เก็บถาวรดั้งเดิมสำหรับฉัน ฉันต้องใช้แอป 'unarchiver' จากitunes.apple.com/us/app/the-unarchiver/id425424353
674669

1
ฉันมีไฟล์ zip แยกที่สร้างขึ้นโดย 7zip บน windows ซึ่งจบลงด้วยรูปแบบการตั้งชื่อไฟล์ที่แตกต่างกัน Unarchiver สามารถดึงข้อมูลออกมาได้เช่นกัน!
สูงสุด

0

ฉันต้องใช้ Unarchiver เพื่อแยกไฟล์ ZIP หลายส่วนที่เกิดขึ้นเช่นกัน แต่ที่แปลกก็คือมันสร้างเส้นทางเดิมไปยังไฟล์ zip เช่นฉันสร้างคลังข้อมูลเดิมที่นี่:

/ เล่ม / HD ภายนอก / โฟลเดอร์ทดสอบ / my-multipart-archive-parts.zip

และคัดลอกทุกส่วนของไฟล์เก็บถาวรไปที่นี่:

~ / Desktop / โฟลเดอร์ทดสอบ /

เมื่อฉันใช้ Unarchiver เพื่อแยกไฟล์มันสร้างสิ่งนี้:

~ / Desktop / Test Folder / Volumes / External HD / โฟลเดอร์ทดสอบ / my-multipart-archive.zip

แปลกมาก...

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.