linux大文件切割与合并依靠split和cat命令,支持按大小(-b)或行数(-l)分割,需搭配-d、-a选项规范命名,合并时用cat通配符重定向并校验sha256sum。

Linux 大文件的切割与合并,核心靠两个命令:split 和 cat。它们轻量、无损、系统自带,不依赖额外软件,适合服务器环境和批量操作。
按大小切割文件(最常用)
适用于 ISO、压缩包、日志、数据库备份等任意类型大文件。关键是控制单个分片不超过目标存储或传输限制(如 FAT32 的 4GB 上限)。
- 用
-b指定每块大小,支持单位K(千字节)、M(兆字节)、G(吉字节),例如-b 450M - 加
-d使用数字后缀(如000、001),比默认字母后缀(xaa、xab)更易排序 - 加
-a 3把后缀长度设为 3 位,避免文件名过短导致顺序错乱(比如09排在10前)
示例:把 backup.tar.gz 切成每块 500MB,前缀为 part_
split -b 500M -d -a 3 backup.tar.gz part_
生成 part_000、part_001、part_002 …
按行数切割(仅限文本)
适合日志、CSV、SQL 导出等纯文本文件,保证每块内容结构完整(如每行是一条记录)。
- 用
-l指定每块行数,例如-l 10000表示每份 1 万行 - 同样建议搭配
-d -a 3,避免命名混乱
示例:
split -l 50000 -d -a 3 access.log log_part_
安全无损地合并文件
合并必须严格按顺序,否则文件损坏。关键点是通配符展开顺序和重定向写入。
- 确保所有分片在同一目录下,且命名规则一致(如都以
part_开头) - 使用
cat part_* > original.tar.gz—— shell 会自动按字典序展开(part_000、part_001…),前提是后缀用了数字且长度统一 - 合并后务必校验完整性:
sha256sum original.tar.gz merged.tar.gz,两行输出应完全一致
绕过常见坑点
实际操作中容易忽略但影响结果的细节:
- 不要用
cat part_*而漏掉重定向>,否则内容直接刷到终端,没保存 - 避免混合使用字母后缀(如
xaa)和数字后缀,否则cat x*可能顺序错乱 - 如果分片名含空格或特殊字符,通配符可能失效,此时改用
cat part_000 part_001 part_002 > out - 切割前确认磁盘剩余空间 ≥ 原文件大小 × 2(切割过程不删源文件,需额外空间存分片)











