bzip2和bunzip2是linux中高压缩率的文本文件压缩解压工具,使用-k可保留原文件,-9设置最高压缩比,-q静默运行;bunzip2解压支持-k保留压缩包,批量解压*.bz2;结合bzcat查看内容或wc统计行数;与tar配合使用-j选项创建或解压tar.bz2归档;常用于数据库导出流压缩,适合大文件高压缩场景。

在linux系统中,bzip2 和 bunzip2 是用于文件压缩与解压的常用工具,特别适合处理大文本文件。它们使用Burrows-Wheeler算法,通常比gzip提供更高的压缩率,但速度稍慢。掌握其使用技巧,能有效提升日常运维和数据管理效率。
基本压缩:使用 bzip2
bzip2 默认会压缩指定文件,并将原文件替换为以 .bz2 结尾的压缩文件。
- 压缩单个文件:bzip2 filename,执行后生成 filename.bz2,原文件被删除。
- 保留原文件:bzip2 -k filename,使用 -k 选项可保留原始文件。
- 设置压缩级别(1-9):bzip2 -9 filename,-9 表示最高压缩比,-1 最快但压缩率低,默认是 -6。
- 静默模式运行:bzip2 -q filename,避免输出状态信息。
解压操作:使用 bunzip2
bunzip2 是 bzip2 的解压工具,功能等同于 bzip2 -d。
- 解压文件:bunzip2 filename.bz2,解压后恢复原文件,.bz2 文件被删除。
- 保留压缩包:bunzip2 -k filename.bz2,解压同时保留 .bz2 文件。
- 批量解压:bunzip2 *.bz2,可一次性解压当前目录下所有 .bz2 文件。
查看压缩内容而不解压
有时只需查看压缩文件内容,无需解压到磁盘。
- 查看文本内容:bzcat filename.bz2 | head 或 bzless filename.bz2,适用于查看日志或配置文件。
- 统计压缩文本行数:bzcat filename.bz2 | wc -l,直接管道处理,节省空间。
与其他命令结合使用
bzip2 常与 tar 配合,实现归档并高压缩。
- 打包并压缩目录:tar -cjf archive.tar.bz2 /path/to/dir,-j 表示调用 bzip2。
- 解压 tar.bz2 文件:tar -xjf archive.tar.bz2,自动调用 bunzip2 解压并提取文件。
- 压缩输出重定向:mysqldump dbname | bzip2 > backup.sql.bz2,直接压缩数据库导出流。
基本上就这些。合理使用 bzip2 和 bunzip2 的选项,既能节省磁盘空间,又能灵活处理数据流。虽然压缩速度不如 gzip 快,但在追求高压缩率时仍是不错选择。不复杂但容易忽略的是 -k 和 -q 这类小参数,关键时刻很实用。


