split -b 100M bigfile | gzip
或 tar -cvMf archive.tar.bz2 large_folder
分段压缩核心工具
Linux通过组合压缩工具(如tar/gzip/bzip2/xz)和分割工具(split)实现分段压缩:
- 压缩工具:打包并压缩文件/目录
- split命令:按指定大小分割文件
# 基础语法 tar [选项] 源文件 | split [选项] - 输出文件名前缀
操作步骤(以10MB分段为例)
压缩并分割目录
tar czvf - /path/to/directory | split -d -b 10M - compressed_part.tar.gz.
- 参数解析
tar czvf -
:
c
创建压缩包 ·z
用gzip压缩 ·v
显示进度 ·f -
输出到标准输出
split -d -b 10M -
:
-d
用数字后缀(如.00, .01) ·-b 10M
每段10MB · 从标准输入读取
compressed_part.tar.gz.
:输出文件前缀(生成文件如compressed_part.tar.gz.00
)
纯分割已压缩文件(两阶段操作)
# 先压缩 tar czvf full_archive.tar.gz /path/to/data # 再分割 split -d -b 10M full_archive.tar.gz split_archive.tar.gz.
解压与合并
合并分段并解压
cat compressed_part.tar.gz.* | tar xzvf -
- 关键说明
cat
按顺序合并所有分段 → 通过管道传递给tar
解压
必须确保分段文件顺序正确(按数字/字母排序)
先合并再解压(适用于大文件)
# 合并分段 cat split_archive.tar.gz.* > full_archive.tar.gz # 解压 tar xzvf full_archive.tar.gz
高级技巧与注意事项
-
压缩算法选择
- 高压缩率(速度慢):
tar cJvf
(使用xz算法,扩展名.tar.xz
) - 平衡选择:
tar cjvf
(bzip2算法,扩展名.tar.bz2
) - 快速压缩:
tar czvf
(gzip算法,默认选择)
- 高压缩率(速度慢):
-
校验文件完整性
合并后使用sha256sum
验证:sha256sum full_archive.tar.gz # 对比原始文件的哈希值
-
处理特殊文件名
若文件名含空格或特殊字符,用引号包裹路径:tar czvf - "/path/with spaces" | split -b 10M - archive_part.
-
Windows兼容性
使用.zip
格式确保跨平台:zip -r -s 10m archive.zip /path/to/dir # 生成archive.zip.00, .01等
应用场景
- 云存储限制:将50GB备份分割为10GB分段上传
- 邮件传输:分割日志文件满足附件大小限制
- 旧系统兼容:在FAT32设备存储超过4GB的虚拟机镜像
安全提示:敏感数据压缩前建议加密:
tar czvf - /data | gpg --encrypt | split -b 10M - secure_part.
Linux分段压缩通过tar
+split
组合实现灵活的文件分割,兼顾效率与兼容性,关键步骤:
- 压缩输出至标准输出(
f -
参数) - 用
split
分割数据流并命名 - 解压时通过
cat
合并分段后管道传输
引用说明基于GNU Coreutils官方文档(split命令)及Linux man-pages项目(tar手册),经实践验证适用于主流Linux发行版(Ubuntu/CentOS等)。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/40559.html