bzip2
bzip2 是 Linux 系统中常用的文件压缩工具,采用 Burrows-Wheeler 变换算法和 Huffman 编码,压缩比通常高于 gzip,但压缩速度较慢,生成 .bz2 格式文件。
bzip2 [选项] 文件名...bzip2 本身只能压缩单个文件,处理目录时,通常先用 tar 工具打包,然后用 bzip2 压缩。
1. 压缩选项
| 选项 | 说明 |
|---|---|
-z |
压缩文件(默认行为) |
-k |
保留原文件 |
-f |
强制压缩,即使目标文件已存在也覆盖 |
-c |
将压缩结果输出到标准输出,不修改原文件,一般配合重定向使用 |
-1 至 -9 |
压缩级别,-1 最快但压缩率低,-9 最慢但压缩率高,默认 -9 |
--fast |
快速压缩,相当于 -1 |
--best |
最佳压缩,相当于 -9 |
-v |
显示压缩详细信息 |
2. 解压选项
| 选项 | 说明 |
|---|---|
-d |
解压文件 |
-k |
解压时保留原压缩文件 |
-f |
强制解压,覆盖已有文件 |
-c |
将解压结果输出到标准输出,一般配合重定向使用 |
-t |
测试压缩文件完整性 |
-v |
显示解压详细信息 |
1. 压缩文件
# 基础压缩:删除原文件,生成 .bz2 压缩文件bzip2 file.txt
# 生成压缩文件 data.csv.bz2,保留原文件bzip2 -k data.csv
# 快速压缩(级别 1),保留原文件并显示详情bzip2 -1 -k -v log.txt2. 解压文件
# 基础解压缩:删除 .bz2 文件,恢复原文件bzip2 -d file.txt.bz2# 或使用 bunzip2(效果相同)bunzip2 file.txt.bz2
# 解压缩并保留 .bz2 文件bunzip2 -k report.txt.bz2
# 解压缩时显示详情bzip2 -d -v data.csv.bz23. 压缩/解压缩到标准输出
# 压缩文件并手动指定输出文件名bzip2 -c notes.txt > my_notes.bz2
# 解压缩到指定文件(不影响原 .bz2 文件)bunzip2 -c report.txt.bz2 > restored_report.txt
# 结合管道传输(例如压缩后直接发送到远程服务器)bzip2 -c large_file | ssh user@server "cat > /backup/large_file.bz2"4. 目录压缩/解压缩处理
# 先打包再压缩tar -cf file.tar directory/ # 创建归档bzip2 file.tar # 压缩成 file.tar.bz2
# 解压 .tar.bz2 归档bzip2 -d file.tar.bz2 # 得到 file.tartar -xf file.tar # 解开 tar 包也可以一步完成,tar 中有专门调用 bzip2 的选项 -j:
# 创建 .tar.bz2 归档(先打包再压缩)tar -cjf file.tar.bz2 directory/
# 解压 .tar.bz2 归档tar -xjf file.tar.bz2man bzip2- bzip2 官方网站