linux中zip分卷压缩核心靠-s参数(zip 3.0+),支持边压边分,生成archive.zip及archive.z01、z02等分卷,解压时只需unzip archive.zip即可自动合并。

Linux 中用 zip 分卷压缩超大文件,核心是靠 zip 命令的 -s 参数(需 zip 3.0+),它能直接把一个目录或大文件拆成多个固定大小的分卷,无需手动切分。关键不是“先压再切”,而是“边压边分”,更可靠、更标准。
直接分卷压缩(推荐)
这是最常用也最稳妥的方式,适合从零开始压缩大目录或单个大文件:
-
语法简洁:`zip -r -s 500m archive.zip target/`
其中-r表示递归(必须加,否则目录为空),-s 500m表示每卷最大 500 MiB(单位支持k、m、g) -
生成文件名规律:会生成
archive.zip(主卷,含目录结构)、archive.z01、archive.z02……直到最后一卷。所有分卷必须放在同一目录下才能解压 -
注意单位含义:
100m是 100 MiB(104857600 字节),不是 MB;如需精确控制,可用100M(严格按 100×1000000 字节),但多数场景用小写m更符合惯例
已有压缩包再分卷(兼容旧环境)
如果系统 zip 版本太老(低于 3.0),不支持 -s,可先生成完整 zip,再用 zip --out 拆分:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 先压缩:`zip -r full.zip big_folder/`
- 再分卷:`zip -s 200m full.zip --out split.zip`
这会生成split.zip、split.z01、split.z02……原full.zip不变 - 该方式本质是重打包,耗时略长,但兼容性好;注意
--out参数必须写在-s后面,顺序不能错
解压分卷文件(很简单)
只要所有分卷都在当前目录,只需一条命令:
- `unzip archive.zip` —— 指定任意一个分卷(通常是
.zip尾卷)即可,unzip 会自动识别并合并全部分卷 - 若提示覆盖,加
-o强制覆盖:`unzip -o archive.zip` - 解压到指定目录:`unzip archive.zip -d /target/path/`
常见问题与提醒
分卷操作看似简单,但几个细节容易出错:
-
版本检查:运行
zip -v确认版本 ≥ 3.0;低于此版本不支持-s直接分卷 -
文件完整性:传输或备份后,建议用
unzip -t archive.zip测试所有分卷是否完整可读 - 权限与路径:确保对源文件有读取权限,对目标目录有写入权限;避免路径含空格或特殊字符,必要时用引号包裹
-
替代方案:若 zip 不满足需求(如需加密分卷、跨平台兼容性差),可考虑
tar + gzip/bzip2 + split或7z(支持分卷加密)










