gzip:GNU 压缩工具
gzip 是 GNU 压缩工具,使用 LZ77 算法进行压缩,广泛用于 Unix/Linux 系统中的文件压缩。
gzip [options] [file...]
gunzip [options] [file...]
zcat [file...]
基本选项
| 选项 | 全称 | 描述 |
|---|---|---|
-c |
--stdout |
输出到标准输出,保留原文件 |
-d |
--decompress |
解压缩(等同于 gunzip) |
-f |
--force |
强制压缩,覆盖已存在的压缩文件 |
-h |
--help |
显示帮助信息 |
-l |
--list |
列出压缩文件的统计信息 |
-r |
--recursive |
递归处理目录 |
-t |
--test |
测试压缩文件的完整性 |
-v |
--verbose |
显示详细信息 |
-1 ~ -9
|
设置压缩级别(1最快压缩率最低,9最慢压缩率最高) | |
--fast |
等同于 -1
|
|
--best |
等同于 -9
|
相关命令
| 命令 | 功能 | 等效命令 |
|---|---|---|
gunzip |
解压缩 gzip 文件 | gzip -d |
zcat |
查看压缩文件内容 | gunzip -c |
zless |
分页查看压缩文件内容 | gunzip -c | less |
zgrep |
在压缩文件中搜索文本 | gunzip -c | grep |
zcmp |
比较压缩文件 | gunzip -c | cmp |
zdiff |
比较压缩文件差异 | gunzip -c | diff |
示例
基本压缩
# 压缩单个文件(原文件会被替换为 .gz 文件)
gzip file.txt
# 结果:file.txt.gz
# 压缩多个文件
gzip file1.txt file2.txt file3.txt
# 结果:file1.txt.gz, file2.txt.gz, file3.txt.gz
基本解压缩
# 解压缩单个文件
gunzip file.txt.gz
# 或
gzip -d file.txt.gz
# 解压缩多个文件
gunzip *.gz
保留原文件的压缩
# 压缩时不删除原文件,并将结果输出到指定文件
gzip -c file.txt > file.txt.gz
递归压缩
# 压缩目录下的所有 .txt 文件
gzip -r /path/to/directory/
# 压缩并显示详细信息
gzip -rv .
压缩级别控制
# 最快压缩(压缩率较低)
gzip -1 largefile.iso
# 最佳压缩(压缩率最高,速度最慢)
gzip -9 important_document.txt
# 默认压缩级别(6)
gzip document.pdf
bzip2:块排序压缩工具
bzip2 使用 Burrows-Wheeler 块排序压缩算法,通常比 gzip 有更高的压缩率,但压缩速度较慢。
bzip2 [options] [file...]
bunzip2 [options] [file...]
bzcat [file...]
bzip2recover [file]
基本选项
| 选项 | 全称 | 描述 |
|---|---|---|
-c |
--stdout |
输出到标准输出,保留原文件 |
-k |
--keep |
压缩后保留原文件 |
-d |
--decompress |
解压缩(等同于 bunzip2) |
-f |
--force |
强制压缩,覆盖已存在的压缩文件 |
-h |
--help |
显示帮助信息 |
-t |
--test |
测试压缩文件的完整性 |
-v |
--verbose |
显示详细信息 |
-1 ~ -9
|
设置压缩级别(默认 9) | |
--fast |
等同于 -1
|
|
--best |
等同于 -9
|
相关命令
| 命令 | 功能 | 等效命令 |
|---|---|---|
bunzip2 |
解压缩 bzip2 文件 | bzip2 -d |
bzcat |
查看压缩文件内容 | bunzip2 -c |
bzless |
分页查看压缩文件内容 | bzcat | less |
bzgrep |
在压缩文件中搜索文本 | bzcat | grep |
bzip2recover |
尝试恢复损坏的 .bz2 文件 | |
bzcmp |
比较压缩文件 | bzcat | cmp |
bzdiff |
比较压缩文件差异 | bzcat | diff |
示例
基本压缩
# 压缩单个文件(默认保留原文件)
bzip2 file.txt
# 结果:file.txt.bz2
# 压缩并删除原文件(-f 强制)
bzip2 -f large_file.dat
# 压缩多个文件
bzip2 file1.txt file2.txt file3.txt
基本解压缩
# 解压缩单个文件
bunzip2 file.txt.bz2
# 或
bzip2 -d file.txt.bz2
# 解压缩多个文件
bunzip2 *.bz2
保留原文件的压缩
# bzip2 默认保留原文件,也可使用 -k 选项
bzip2 -k important.txt
# 结果:同时存在 important.txt 和 important.txt.bz2
# 如果不保留原文件
bzip2 -f document.pdf
查看压缩文件内容
# 直接查看压缩文本文件
bzcat file.txt.bz2
# 分页查看
bzless large_file.txt.bz2
# 搜索压缩文件内容
bzgrep "error" logfile.bz2
# 查看压缩文件的尾部
bzcat access.log.bz2 | tail -100
压缩级别控制
# 最快压缩(压缩率较低)
bzip2 -1 temporary_file.tmp
# 最佳压缩(默认,压缩率最高)
bzip2 -9 archive.tar
# 中等压缩级别
bzip2 -5 data.csv
gzip 与 bzip2 对比
| 特性 | gzip | bzip2 |
|---|---|---|
| 压缩算法 | LZ77 + Huffman 编码 | Burrows-Wheeler 变换 |
| 压缩速度 | 较快 | 较慢 |
| 解压速度 | 很快 | 较慢 |
| 压缩率 | 一般 | 较高 |
| 内存使用 | 较少 | 较多 |
| 文件扩展名 | .gz | .bz2 |
| 保留原文件 | 默认不保留(需 -c) | 默认保留(有 -k 选项) |
| 适用场景 | 实时压缩、网络传输 | 长期存储、备份 |
| 恢复工具 | 无专用恢复工具 | 有 bzip2recover |
重要提示
不要重复压缩已压缩的文件。
# 图片已经是压缩格式,再压缩只会增加文件大小
bzip2 picture.jpg
对于已经是压缩格式的文件(jpg, png, mp3, mp4, pdf等),应该直接存储,不要需要再次压缩。对于文本文件、日志文件、源代码等,使用压缩可以获得很好的效果。