split -b 按字节精确分片,适合传输分块;需注意内容完整性,推荐用 --lines=1 对齐行尾、-d 与 --suffix-length 控制命名,并通过补换行后哈希校验一致性。

用 split -b 命令最直接,它按字节精确控制每个分片大小,适合上传限制、传输分块等场景。
按大小分割的核心命令
基本格式是:
split -b SIZE INPUT_FILE [PREFIX]
其中 SIZE 支持单位 K/M/G(默认 1024 进制),例如:
-
split -b 100M access.log part_→ 每个分片约 100MB,文件名为part_aa、part_ab… -
split -b 512K app.log→ 不指定前缀时默认用x,生成xaa、xab… -
split -b 2G -d --suffix-length=3 data.bin chunk_→ 用三位数字编号(chunk_000、chunk_001),更利于脚本处理
注意边界与内容完整性
-b 是纯字节截断,不识别换行或结构。如果切在 JSON 行中间、CSV 字段里,下游解析会失败:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 若需“尽量对齐行尾”,加
--lines=1(GNU 版本支持),它会让每个分片以完整行为单位,大小可能略超目标值 - 二进制文件(如压缩包、数据库导出)不建议用 -b 直接切,除非确认可接受任意字节位置断开
- 检查原文件末尾是否有换行:
tail -c1 access.log | xxd,输出0a表示有;缺失时可先补:[[ $(tail -c1 access.log) ]] || echo >> access.log
命名与校验建议
默认的 xaa 类命名不利于自动化,推荐显式控制:
- 用
-d启用数字后缀,再配--suffix-length=3得到part_000格式 - 校验不能只比拼接后 md5sum:因 split 不保证每份结尾有换行,拼回去可能丢行或粘连
正确做法:(cat part_*; echo) | sha256sum与(cat access.log; echo) | sha256sum对比 - 切完立刻抽查:
head -n1 part_000和tail -n1 part_000,确认无半行、无乱码

















