我已经安装了所有命令行实用程序,需要在终端中将现有.zip
(或)新文件拆分为(50MB)个段。.zip
例如文件夹 X = 900MB > 创建自解压.zip
存档 > 将.zip
存档拆分为 50MB 的段(例如Folder.X.001.zip
)
根据手册页,命令如下:
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
答案1
但您existing.zip
需要将其分割成50M
大小合适的部分。
zip existing.zip --out new.zip -s 50m
将创造
new.zip
new.z01
new.z02
new.z03
....
为了提取它们,
- 解压:您应该先将文件收集在一起并运行
zip -s0 new.zip --out existing.zip
,以重新创建existing.zip
。然后您就可以简单地unzip existing.zip
。 - 7z:你也可以
7z x new.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,然后运行 unzip,但无法提取所有文件。
答案2
这对我有用:
zip -s 50m new.zip big.iso
适用于50MG零件
new.zip
new.z01
new.z02
...
用它创建 3G 的块(适合将大文件放在 FAT32 磁盘上)
zip -s 3g new.zip big.iso
新的 Mac OS 双击 new.zip 文件即可提取这些文件
答案3
我必须使用 Unarchiver 来提取生成的多部分 ZIP 文件,但奇怪的是,它重新创建了该 zip 文件的原始路径。例如,我最初在这里创建了档案:
/Volumes/External HD/测试文件夹/my-multipart-archive-parts.zip
并将档案的所有部分复制到此处:
~/桌面/测试文件夹/
当我使用 Unarchiver 提取文件时,它创建了以下内容:
~/桌面/测试文件夹/卷/外部高清/测试文件夹/my-multipart-archive.zip
很奇怪...