在 Linux 下压缩大文件,常用的方法有 tar + gzip / bzip2 / xz / zstd,以及 直接压缩单个文件。下面按常见场景给你总结,并给出速度 vs 压缩率对比,方便你选择。
✅ 速度快、兼容性好
❌ 压缩率一般
tar -czvf 文件名.tar.gz 要压缩的文件或目录
解压:
tar -xzvf 文件名.tar.gz
✅ 压缩率比 gzip 好
❌ 速度慢
tar -cjvf 文件名.tar.bz2 目录
解压:
tar -xjvf 文件名.tar.bz2
✅ 压缩率最好
❌ 非常慢(CPU 密集)
tar -cJvf 文件名.tar.xz 目录
解压:
tar -xJvf 文件名.tar.xz
✅ 速度快 + 压缩率高
✅ 大文件首选
tar -I zstd -cvf 文件名.tar.zst 目录
解压:
tar -I zstd -xvf 文件名.tar.zst
如果系统没有 zstd:
sudo apt install zstd # Debian/Ubuntu
sudo yum install zstd # CentOS/RHEL
gzip 文件名
生成:文件名.gz
解压:
gunzip 文件名.gz
xz 文件名
解压:
unxz 文件名.xz
| 场景 | 推荐 |
|---|---|
| 普通备份 | tar.gz |
| 网络传输 | tar.zst |
| 极限压缩 | tar.xz |
| 单文件 | xz / zstd |
tar -I pigz -cvf 文件.tar.gz 目录
tar -I "zstd -T0" -cvf 文件.tar.zst 目录
-T0表示使用所有 CPU 核心
pvtar -cvf - 目录 | pv | gzip > 文件.tar.gz
tar -czvf 文件.tar.gz 目录 --exclude=*.log --exclude=node_modules
✅ 最推荐(大文件)
tar -I "zstd -T0" -cvf data.tar.zst data/
✅ 兼容性最好
tar -czvf data.tar.gz data/
如果你愿意,可以告诉我:
我可以给你最优压缩方案。