关键在于先打包压缩再分块:tar生成归档→管道split切分→cat拼接→解压还原,全程不落地节省空间且保障完整性与校验能力。

直接归档并切分超大视频文件,关键在于“先打包压缩、再分块”,而不是对原始视频逐个切片。因为视频文件本身已是二进制大文件,直接 split 原始视频虽可行,但丢失校验、不便管理;而用 tar 打包后再 split,则兼顾完整性、可验证性和传输鲁棒性。
核心思路是:tar 生成归档 → 管道交给 split 切分 → 接收端 cat 拼接 → 解压还原。整个过程不落地中间大文件,节省磁盘空间,也避免因单次操作失败导致前功尽弃。
一、打包+切分一步到位(推荐)
适合内存充足、不想保留完整 tar.gz 的场景: ```bash tar -czf - /path/to/videos/ | split -b 2G -d -a 3 - video_part.tar.gz. ``` - `tar -czf -`:把 videos 目录 gzip 压缩后输出到标准输出(`-` 表示 stdout) - `split -b 2G`:每块 2GB(可按需换为 `1G`、`4000M` 或 `5000000000` 字节) - `-d -a 3`:用数字命名,后缀长度为 3(生成 `video_part.tar.gz.000`, `.001`, ...) - 最后的 `.` 不能省——它定义了输出文件前缀和分隔符二、先生成完整归档,再手动切分
适合需要校验或复用完整包的场景: ```bash # 第一步:打包压缩 tar -czf videos.tar.gz /path/to/videos/第二步:切分(同上,但输入是已存文件)
split -b 2G -d -a 3 videos.tar.gz videos.tar.gz.
注意:切分后原 `videos.tar.gz` 仍存在,可用来做 md5 校验(如 `md5sum videos.tar.gz`),后续拼接完再比对。 <h3>三、接收端还原流程</h3> 在目标机器上依次执行: ```bash # 合并所有分片(按字典序自动排序,确保顺序正确) cat video_part.tar.gz.* > videos.tar.gz # 验证完整性(可选但强烈建议) md5sum videos.tar.gz # 与源端输出比对 # 解压还原 tar -xzf videos.tar.gz -C ./restored/
⚠️ 注意:cat video_part.tar.gz.* 依赖 shell 展开顺序。若分片数超过 999,-a 3 可防错;若用 -a 4,则确保接收端 shell 支持四位数字排序(bash/zsh 均支持)。
四、实用提示与避坑点
- 不要用 `-l`(按行切分)处理二进制文件:视频、tar.gz 都是二进制流,按行切会损坏数据。 - 单块大小建议 ≤ 4GB:适配 FAT32 U 盘、部分旧 FTP 服务或邮箱附件限制。 - 若网络不稳定,可配合 `rsync` 传输分片:`rsync -P video_part.tar.gz.* user@host:/dest/`,支持断点续传。 - 分片命名带 `.tar.gz.` 前缀,是为了清晰标识用途,也方便 `ls video_part.tar.gz.*` 一键列出全部。不复杂但容易忽略











