首页/系统/Linux 运维命令速查/split 拆分大文件
文件与目录76 条

split 拆分大文件

把大文件按大小或行数切成多个小片,方便传输、上传受限平台与并行处理;cat 按序合并还原。

Linux 运维命令速查系统更新于 2026-10-13

split 是什么

split 是 GNU coreutils 里的文件切分工具,把一个大文件按字节数、行数或份数切成多个小文件。典型动机有三个:目标平台对单文件大小有硬限制、跨网络传输需要分片重传、下游程序一次吃不下整份数据。切分本身不做校验,也不在被切分文件里保存任何元信息,还原完全依赖输出文件名的顺序拼接(cat 前缀* 重定向回原文件),所以切分与合并之间必须用外部摘要(sha256sum)来证明完整性。

基本信息

适用平台GNU/Linux、macOS(BSD 版选项更少)
语法split [选项] [输入文件 [输出前缀]]
默认行为按 1000 行切分,输出 xaa、xab 等文件名
合并方式cat 前缀* > 原文件,顺序依赖文件名排序
常用选项-b 按字节 -l 按行 -n 按份数 -d 数字后缀 -a 后缀位数
注意输入读取失败时不会自动清理已生成的 分片

典型使用场景

  • 上传到对单文件大小有限制的平台,先切片再传,落地后合并并校验。
  • 跨公网传超大文件时切片并行传输,某片失败只重传那一片,不用从头再来。
  • 把几十 GB 的 CSV 或 SQL 文本按行数切小,分发给多个处理进程并行跑。
  • 准备压测或训练样本时按固定行数切分,控制单批数据量。
  • 把大文件切成固定字节的块,喂给只接受小块输入的老旧程序或接口。

常用写法

常用写法
split -b 100M -d -a 2 backup.tar.gz part_   # 每 100MB 一片,得到 part_00 part_01 ...
split -l 500000 big.csv chunk_               # 每 50 万行一片
split -n 4 huge.log seg_                     # 按字节均分成 4 片
split -b 100M -d -a 2 -e big.iso p_          # -e 不生成最后的空分片
sha256sum backup.tar.gz > backup.sha256      # 切分前先记录原文件摘要
cat part_* > backup.tar.gz                   # 按文件名顺序合并还原
sha256sum -c backup.sha256                   # 合并后校验一致才算成功
wc -c part_* | tail -1                       # 累加分片字节数,与原始大小比对

选项与切点对照

选项作用使用要点
-b 100M按字节大小切分配合 -d -a 2 得到可排序的数字后缀
-l N按行数切分文本文件首选,切点落在行边界不破坏记录
-n N均分为 N 片按字节平摊,文本可能从行中间断开
-d改用十进制数字后缀替代默认字母后缀,便于脚本处理与排序
-a N设置后缀位数位数不足会进位导致乱序,统一位数才安全
-e不生成空白分片输入正好整除时避免多出一个 0 字节文件
合并顺序由 shell 通配符排序决定:part_10 会排在 part_2 之前。用 -d 生成数字后缀并固定 -a 位数,或者合并时显式排序(ls part_* | sort | xargs cat > 原文件)都能避开这个坑。
切分不校验内容,丢片或传坏往往到恢复时才发现。稳妥流程是:切分前记录整体 sha256,分片全部落地后合并,再用 sha256sum -c 复核;校验不通过就整批重传,不要在坏文件上继续操作。
GNU split 的 -d、-a、-n 属于扩展选项,BSD 与 macOS 自带 split 选项集更小,跨平台脚本要么避开这些选项,要么在目标机先确认版本。

易错点

  • 合并时用 part_* 通配但没统一后缀位数,part_10 排在 part_2 前,还原出的文件损坏而大小看着正常;合并后必须做摘要校验,别只看文件大小。
  • 切分到一半磁盘满或进程被杀,会留下不完整分片,后续合并得到坏文件;切分后立刻用 wc -c 累加分片字节数与原文件比对,是最快的自检方式。
  • 对二进制文件用 -l 按行切,遇到内容里恰好含换行字节时切点没有语义,单片的可读性与可校验性都变差;二进制文件一律按字节切分。
  • 同目录重复切分会覆盖同名旧分片,新旧两批混在一起导致合并结果被污染;切分前清空目标目录或换用不同前缀。

数据来源与参考

  • man 1 split(GNU coreutils 手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌