Linux下切割合并大文件需用split和cat,关键在正确参数:二进制文件必须用-b按字节切,避免行分割;合并时用ls -v自然排序防顺序错;务必校验sha256确保完整性。

Linux 下切割和合并大文件,核心就两个命令:split 和 cat。关键不是会不会用,而是用对参数、避开通配符陷阱、确保顺序正确——否则合并出来的文件可能打不开或校验失败。
按大小精准切割二进制文件
处理 ISO、tar.gz、数据库备份等二进制文件,必须用 -b(字节模式),不能依赖默认的行分割(-l),否则会破坏文件结构。
-
推荐写法:`split -b 450M -d -a 3 large.iso seg_`
→ 每块 450MB,数字后缀三位(seg_000、seg_001…),天然排序,适合脚本和跨平台传输 - 避免 `split large.iso` 这种无参数调用:默认按 1000 行切、字母后缀(xaa、xab),对二进制文件完全不可用
- FAT32 U 盘场景?直接设 `-b 4000M`,留足余量避开 4GB 硬限制
安全合并,不靠通配符猜顺序
`cat seg_* > restored.iso` 看似简单,但 shell 通配符 * 按 ASCII 排序,seg_009 后面可能是 seg_01,而不是 seg_010——顺序错就全毁了。
-
稳妥做法:`ls -v seg_* | xargs cat > restored.iso`
→ls -v是“自然排序”,能正确识别 001、002、010 的数值关系 - 若用默认字母后缀(如 seg_aa),可用:`printf '%s\0' seg_* | sort -z | xargs -0 cat > restored.iso`
→ 支持含空格/特殊字符的文件名,且排序可靠 - 合并前先检查数量:`ls seg_* | wc -l` 应与你预期的分块数一致
合并后快速验证是否完整
分割/合并过程不会报错,但损坏常静默发生。别跳过校验这步。
- 原始文件哈希:`sha256sum large.iso > original.sha256`
- 合并后立即校验:`sha256sum restored.iso`,比对输出是否完全一致
- 小技巧:把哈希值写进文件名或 README,方便异地还原时核对,例如 `seg_000.sha256`


















