首页/数据/备份与容灾速查/split 分卷与合并

split 分卷与合并

把大归档拆分为定长分卷,便于介质拷贝与分片传输;按序合并即可还原,配合校验和确认完整性。

备份与容灾速查数据更新于 2026-10-13

split 分卷与合并

把大归档拆成定长的小文件,便于按介质容量拷贝、分片传输和断点续传;还原时按顺序合并即可。它的价值在介质受限的场景最明显:单文件必须小于 U 盘、光盘或某个上传接口的大小限制。代价是引入了顺序依赖,任何一卷缺失都会让合并结果无效,因此分卷必须配校验和。

基本信息

适用平台Linux/Unix(GNU coreutils 的 split)
常用参数-b 分卷大小、-d 数字后缀、-a 后缀长度、-n 按数量均分
合并方式cat 按序拼接,或按后缀序号显式列出
校验合并后用 sha256sum -c 验证完整归档

典型使用场景

  • 离线介质拷贝:把归档拆成适合单张光盘或单个 U 盘的大小
  • 上传接口限制:对象存储或接口有单文件大小上限时按块上传
  • 分片传输:多链路并行搬运大文件,之后合并
  • 邮件或工单附件限制:按大小分卷提交
  • 长期保存:分卷后按卷编号与校验和记录清单,便于缺卷核查

分卷与还原

分卷与还原
tar -cf - /data | zstd -T0 -o full.tar.zst   # 先做完整归档
split -b 2G -d -a 2 full.tar.zst full.part-    # 每卷 2G,数字后缀 full.part-00
ls -lh full.part-*                             # 核对卷数与大小
sha256sum full.part-* > parts.sha256           # 逐卷记录校验和,缺卷可查出
sha256sum -c parts.sha256                      # 合并前校验每一卷
cat full.part-* > restored.tar.zst             # 按序合并
sha256sum restored.tar.zst > restored.sha256 && sha256sum -c restored.sha256

参数与行为

参数含义注意
-b每卷大小,支持 K/M/G单位按 1024 进制,注意与介质容量的差异
-d数字后缀排序稳定,避免字母序造成的顺序问题
-a后缀长度卷数超过 100 时需加长,否则会覆盖
-n按数量均分适合分给多人的场景
数字后缀能提供稳定的合并顺序,优于字母后缀在脚本中的通配展开。归档清单要把卷数、每卷校验和与总校验和一起留档,缺一卷时能立刻定位。
合并前先确认磁盘剩余空间:合并出的完整归档与各分卷会同时占用空间,容量不足会在拼接中途失败,留下一个看起来正常但实际截断的文件。

易错点

  • 分卷缺失时合并结果表面完整但解压失败:使用前必须先逐卷校验
  • 字母后缀卷数超过 26 或数字后缀卷数超过位数上限:文件名冲突导致静默覆盖
  • 不同 locale 下通配符排序不同:脚本里应显式使用数字后缀或列出文件
  • 先分卷再压缩:压缩率下降且无法跨卷利用冗余,正确顺序是先归档压缩再分卷

数据来源与参考

  • man 1 split(GNU coreutils)
  • man 1 sha256sum
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌