作者: 一去、二三里
个人微信号: iwaleon
微信公众号: 高效程序员
bzip2 是 Linux 下一款压缩软件,能够高效地完成文件数据的压缩,支持现在大多数的压缩格式,包括 tar、gzip 等。若没有加上任何参数,bzip2 压缩完文件后会产生 .bz2 的压缩文件,并删除原始文件。bzip2 比传统的 gzip 或 zip 的压缩效率更高,但是它的压缩速度较慢。bzip2 只是一个数据压缩工具,而不是归档工具,在这一点上与 gzip 类似。
gzip
命令介绍
-
命令名称
bzip2 -
基本语法
bzip2 [OPTION]… [FILE]… -
功能描述
压缩文件。压缩后的文件扩展名为 .bz2,默认压缩后会删除原文件。
命令选项
选项 | 说明 |
---|---|
-h --help | 显示帮助 |
-d --decompress | 执行解压缩 |
-z --compress | 强制执行压缩 |
-k --keep | 压缩或解压缩后,会删除原始文件。若要保留原始文件,请使用此参数。 |
-f --force | 压缩或解压缩时,若输出文件与现有文件同名,默认不会覆盖现有文件。若要覆盖,请使用此参数。 |
-t, --test | 检查压缩文件的完整性 |
-c, --stdout | 将压缩与解压缩的结果输出到标准输出设备 |
-q, --quiet | 不显示错误信息 |
-v, --verbose | 压缩或解压缩文件时,显示详细信息 |
-L --license | 显示版本信息和许可 |
-V --version | 显示版本信息和许可 |
-s --small | 降低程序执行时内存的使用量(最多2500 k) |
-1(或 --fast) .. -9(或 --best) | 设置块大小为 100k …900k |
--repetitive-best | 若文件中有重复出现的资料时,可利用此参数提高压缩效果。 |
--repetitive-fast | 若文件中有重复出现的资料时,可利用此参数加快执行速度。 |
使用范例
1.压缩文件,压缩后原文件被删除
[wang@localhost linux]$ ls -l
总用量 33132
-rw-rw-r--. 1 wang wang 31 9月 29 11:03 hello.sh
-rw-r--r--. 1 wang wang 33921784 6月 7 11:02 linux-program.pdf
[wang@localhost linux]$ bzip2 hello.sh
[wang@localhost linux]$ ls -l
总用量 33132
-rw-rw-r--. 1 wang wang 72 9月 29 11:03 hello.sh.bz2
-rw-r--r--. 1 wang wang 33921784 6月 7 11:02 linux-program.pdf
2.压缩后,保留原文件
# 计算压缩后文件的 md5 值
[wang@localhost linux]$ bzip2 hello.sh
[wang@localhost linux]$ md5sum hello.sh.bz2
39a9623f5ddb0ecbc4f3cee2fdd9245e hello.sh.bz2
# 解压缩(还原回去)
[wang@localhost linux]$ bunzip2 hello.sh.bz2
# 如果要保留原文件,使用下面命令
[wang@localhost linux]$ bzip2 -k hello.sh
[wang@localhost linux]$ ls
hello.sh hello.sh.bz2 linux-program.pdf
[wang@localhost linux]$ md5sum hello.sh.bz2
39a9623f5ddb0ecbc4f3cee2fdd9245e hello.sh.bz2
显然,校验 md5 值,和直接使用 bzip2 一致。
3.压缩时,显示详细信息
[wang@localhost linux]$ bzip2 -v hello.sh
hello.sh: 0.431:1, 18.581 bits/byte, -132.26% saved, 31 in, 72 out.
[wang@localhost linux]$ ls -l
总用量 33132
-rw-rw-r--. 1 wang wang 72 9月 29 11:03 hello.sh.bz2
-rw-r--r--. 1 wang wang 33921784 6月 7 11:02 linux-program.pdf
4.解压缩
[wang@localhost linux]$ bzip2 hello.sh
[wang@localhost linux]$ ls
hello.sh.bz2 linux-program.pdf
[wang@localhost linux]$ bzip2 -d hello.sh.bz2
[wang@localhost linux]$ ls
hello.sh linux-program.pdf
5.解压到标准输出
使用 -c 选项指定到标准输出,输出的是文件 hello.sh 的内容,不会将 hello.sh.bz2 删除。
[wang@localhost linux]$ bzip2 -dc hello.sh.bz2
#!/bin/sh
echo "Hello World!"
[wang@localhost linux]$ ls
hello.sh.bz2 linux-program.pdf
bunzip2
命令介绍
-
命令名称
bunzip2 -
基本语法
bunzip2 [OPTION]… [FILE]… -
功能描述
解压缩文件
命令选项
选项 | 说明 |
---|---|
-k --keep | 压缩或解压缩后,会删除原始文件。若要保留原始文件,请使用此参数。 |
-f --force | 压缩或解压缩时,若输出文件与现有文件同名,默认不会覆盖现有文件。若要覆盖,请使用此参数。 |
-v, --verbose | 压缩或解压缩文件时,显示详细信息 |
-s --small | 降低程序执行时内存的使用量(最多2500 k) |
-1(或 --fast) .. -9(或 --best) | 设置块大小为 100k …900k |
使用范例
1.解压缩文件
[wang@localhost linux]$ ls
hello.sh.bz2 linux-program.pdf
[wang@localhost linux]$ bunzip2 hello.sh.bz2
[wang@localhost linux]$ ls
hello.sh linux-program.pdf
2.解压缩时,显示详细信息
[wang@localhost linux]$ bunzip2 -v hello.sh.bz2
hello.sh.bz2: done
[wang@localhost linux]$ ls
hello.sh linux-program.pdf
3.解压到标准输出
[wang@localhost linux]$ bunzip2 -c hello.sh.bz2
#!/bin/sh
echo "Hello World!"
[wang@localhost linux]$ ls
hello.sh.bz2 linux-program.pdf