必须将2.8gb数据库备份文件按字节切分为≤1.5gb的分片以满足平台限制,使用split -b命令物理切割、cat命令合并还原,并通过哈希校验确保完整性。

当你在Mac上遇到一个2.8GB的数据库备份文件,而客户指定的上传平台单文件限制是1.5GB时,必须把大文件切分成几个小文件才能顺利传输。这一步不压缩、不改内容,只做物理切割,确保接收方用cat命令一拼就还原成原始文件。
基础切割:按大小拆分最常用
打开终端,进入大文件所在目录,执行:split -b 1.2g yourfile.zip yourfile.zip.
这条命令会把 yourfile.zip 按每块1.2GB切开,输出文件名以 yourfile.zip. 开头,后缀为 aa、ab、ac……默认用两位小写字母编号。注意后缀点不能漏,否则输出文件会覆盖原文件或命名混乱。
切完后用 ls -lh yourfile.zip.* 查看结果,确认每个分片都在1.2GB左右,最后一个可能略小——这是正常现象,split按字节硬切,不强制补齐。
进阶控制:让分片名更易读、更可控
方法一:用数字后缀代替字母,避免排序错乱
split -b 1g -d -a 3 yourfile.zip yourfile_part_
加 -d 启用数字后缀,-a 3 指定三位长度,生成 yourfile_part_000、yourfile_part_001 这类名字。这对脚本处理和人工识别都更友好,尤其当分片超过26个时,字母后缀会变成ba、bb,极易误判顺序。
方法二:按行数切(仅限纯文本日志类文件)
split -l 50000 app.log log_chunk_
这会把 app.log 每5万行切一个文件。但绝对不要对二进制文件(如zip、pdf、mp4)用 -l 参数,会导致文件损坏,因为行概念在二进制里无意义,split会强行断在任意字节位置。
验证与合并:切完立刻检查是否可还原
第一步:确认所有分片存在且未损坏
运行 ls -1 yourfile.zip.* | sort,观察输出是否连续(aa→ab→ac……),中间不能跳号或缺失。如果发现缺 ab,说明切割过程被中断过,必须重切。
第二步:用 cat 合并回原文件
cat yourfile.zip.* > yourfile_restored.zip
注意 shell 通配符 * 会自动按字母序展开,所以 aa 在 ab 前,顺序天然正确。但如果你用了数字后缀(如 000、001),也必须确保 sort 后再 cat,否则 010 会排在 02 前面导致错序。
第三步:校验哈希值是否一致
shasum -a 256 yourfile.zip yourfile_restored.zip
两行输出的哈希值必须完全相同。只要有一个字节不同,就说明切割或合并环节出错,不能交付使用。











