学姐妙妙屋个人记录 / PERSONAL ARCHIVE
阅读文章 ↗
← 返回文章
2026-06-10 / Linux · 实用技巧

Linux 压缩解压工具完全指南:pigz、zstd、7z 等

对比 pigz/pbzip2/pixz/zstd/7z 的压缩率、速度和多线程支持,附 tar 排除目录、批量解压等实用技巧和场景推荐。

Linux 下压缩解压工具很多,不同格式在压缩率、速度、多线程支持上差异很大。本文从实用角度出发,整理了各工具的对比、用法和推荐场景。

为什么需要多线程压缩

传统的 gzip、bzip2、xz 默认只使用单核 CPU。在现代多核机器上,压缩大文件时只有一个核心在跑,其余核心闲置。多线程版本(如 pigz、pbzip2)能充分利用所有核心,速度提升 3~10 倍。

快速对比

格式工具压缩率速度多线程典型用途
.gzpigz低极快✅日志、临时文件
.bz2pbzip2高中✅归档、长期存储
.xzpixz最高慢✅高压缩需求备份
.zstzstd中高极快✅实时压缩、高性能
.7z7z最高慢✅极限压缩,跨平台
.zip7z中中✅兼容 Windows

各工具安装与用法

pigz — 多线程 gzip

sudo apt install pigz
# 压缩(配合 tar)
tar -I pigz -cf output.tar.gz 目录/
# 解压
tar -I pigz -xf output.tar.gz

速度约为原生 gzip 的 5 倍,适合日志轮转和临时文件。

pbzip2 — 多线程 bzip2

sudo apt install pbzip2
tar -I pbzip2 -cf output.tar.bz2 目录/
tar -I pbzip2 -xf output.tar.bz2

压缩率比 gzip 高 20%~30%,速度 2~3 倍于原生 bzip2。长期归档首选。

zstd — 新一代极速压缩

sudo apt install zstd
# -T0 自动检测 CPU 线程数
tar -I "zstd -T0" -cf output.tar.zst 目录/
tar -I zstd -xf output.tar.zst

速度碾压所有传统格式,压缩率接近 bzip2。约 10 倍于 gzip 的速度,适合实时处理和大型数据集。

7z — 极限压缩 + 跨平台

sudo apt install p7zip-full
# 压缩(LZMA2,最高压缩率)
7z a -mmt=on output.7z 目录/
# 压缩为标准 zip(兼容 Windows)
7z a -mmt=on -tzip output.zip 目录/
# 解压
7z x -mmt=on output.7z

-mmt=on 开启多线程。7z 格式压缩率最高但速度最慢;zip 格式兼容性最好但压缩率一般。

tar 实用技巧

打包时排除指定目录

# 排除 .git 和 node_modules
tar -czvf backup.tar.gz --exclude=.git --exclude=node_modules .

# 从文件读取排除列表
tar -czvf backup.tar.gz -X exclude.list .

批量解压多个包

for f in *.tar; do echo "解压: $f"; tar -xf "$f"; done

场景推荐

需求推荐理由
最快压缩/解压zstd 或 pigz速度碾压其他工具
平衡压缩率与速度pbzip2比 gz 压缩率高,比 xz 快
极限压缩pixz 或 7z备份不可重复数据
跨平台发给别人7z -tzipWindows/macOS 直接打开
日志轮转pigz速度优先,压缩率不重要