Linux 文件压缩与分割指南
在 Linux 系统中,处理超大文件或文件夹时,经常需要将其压缩以节省空间,并分割成多个小文件以便于通过邮件、网盘或其他限制文件大小的渠道进行传输。
常用工具介绍
- tar: 用于将多个文件打包成一个文件(归档)。
- gzip/bzip2/xz: 用于对文件进行压缩。
- split: 用于将一个大文件分割成多个小文件。
- cat: 用于将分割后的文件重新合并。
先压缩,后分割(最常用)
这种方法逻辑清晰,分为两个独立步骤:先生成一个压缩包,再将其切分。
压缩文件夹
使用 tar 命令将文件夹压缩为 .tar.gz 格式:tar -czvf backup.tar.gz /path/to/folder
-c: 创建新归档文件。-z: 使用 gzip 压缩。-v: 显示详细过程。-f: 指定文件名。
分割压缩包
使用 split 命令将大文件分割成指定大小的块(例如每个文件 100MB):
split -b 100M backup.tar.gz "backup.tar.gz.part"
-b 100M: 每个分片的大小为 100MB(可以使用 K, M, G)。backup.tar.gz: 要分割的原文件。"backup.tar.gz.part": 分割后文件的前缀。
结果:你会得到 backup.tar.gz.partaa, backup.tar.gz.partab 等文件。
压缩与分割同步进行(高效)
利用 Linux 的管道 (Pipe) 机制,可以在压缩的同时直接进行分割,无需产生一个巨大的中间临时文件,节省磁盘空间。
一键压缩并分割
tar -czvf - /path/to/folder | split -b 100M - "backup.tar.gz.part"
tar命令末尾的 表示将结果输出到标准输出(stdout)。split命令中的 表示从标准输入(stdin)读取数据。
如何还原(合并与解压)
无论使用上述哪种方法分割,还原步骤都是一致的。
合并分片文件
使用 cat 命令将所有分片按顺序合并回一个完整的压缩包:
cat backup.tar.gz.part > backup.tar.gz
backup.tar.gz.part: 匹配所有以该前缀开头的文件。>: 将合并后的内容重定向到新文件。
解压文件
使用 tar 命令解压合并后的文件:tar -xzvf backup.tar.gz
-x: 解压文件。
核心参数速查表
| 参数 | 工具 | 含义 | 示例 |
|---|---|---|---|
-b |
split |
指定分割的大小 | -b 500M |
-d |
split |
使用数字后缀而非字母后缀 | -d |
-c |
tar |
创建压缩包 |
tar -c |
-x |
tar |
解压压缩包 | tar -x |
-z |
tar |
使用 gzip 格式 | tar -z |
-j |
tar |
使用 bzip2 格式(压缩率更高) | tar -j |
实用建议
- 校验完整性:在传输大文件后,建议使用
md5sum或sha256sum命令校验原文件与还原后文件的哈希值,确保数据在分割和合并过程中没有损坏。 - 数字后缀:如果你更喜欢
part01,part02这种命名,请在split命令中加入-d参数。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/490102.html



