1. Linux系统上bz2的简介

在Linux运维中,我们经常看到.bz2后缀的文件,这是一种压缩文件,一般存在于Linux系统当中。本文介绍一下如何使用bzip2工具来压缩和解压bz2文件。



linux上解压的redis没有bin linux解压bz2_解压缩


2. 安装bzip2

以CentOS系统为例,最小化安装的情况下,并没有集成bzip2。

[root@zcwyou ~]# bzip2

-bash: bzip2: 未找到命令

安装命令:

[root@zcwyou ~]# yum -y install bzip2

输出部分结果,表明安装完毕:

Running transaction

正在安装 : bzip2-1.0.6-13.el7.x8664 1/1

验证中 : bzip2-1.0.6-13.el7.x8664 1/1

已安装:

bzip2.x86_64 0:1.0.6-13.el7

完毕

3. 创建一个5M大小的测试文件,内容全0

[root@zcwyou ~]# dd if=/dev/zero of=zcwyou.txt bs=1M count=5

检查该文件,确认创建成功:

[root@zcwyou ~]# ll -h

总用量 5.0M

-rw-r--r--. 1 root root 5.0M 10月 10 14:19 zcwyou.txt

4. 试试压缩它

[root@zcwyou ~]# bzip2 -z zcwyou.txt

检查:

[root@zcwyou ~]# ll -h

总用量 4.0K

-rw-r--r--. 1 root root 48 10月 10 14:19 zcwyou.txt.bz2

你会发现zcwyou.txt不见了,只有zcwyou.txt.bz2。意思是,默认情况下,bzip2不保留源文件。除非添加一个参数-k,即bzip2 -zk zcwyou.txt

而且由原来的5M压缩为48字节,变成一个极小的文件,原因是这个文件内容是全0,仅仅用于测试,所以压缩率是非常高的,日常的文件不是全0,所以也不会这么高的压缩率。


linux上解压的redis没有bin linux解压bz2_解压文件_02


5. 试试解压它

命令:

[root@zcwyou ~]# bzip2 -d zcwyou.txt.bz2

或者:

[root@zcwyou ~]# bunzip2 zcwyou.txt.bz2

检查:

[root@zcwyou ~]# ll -h

总用量 5.0M

-rw-r--r--. 1 root root 5.0M 10月 10 14:19 zcwyou.txt

你会发现zcwyou.txt.bz2消失了,表示源文件被删除了。如果想保留源文件,添加参数-k,即bzip2 -dk zcwyou.txt.bz2

注意,bzip2命令只能处理单个文件,如果是文件夹,请结合tar使用


linux上解压的redis没有bin linux解压bz2_linux上解压的redis没有bin_03


6. 命令选项,一般使用短选项,长选项是方便理解。长短2选1.

短参数长参数作用-c-stdout将压缩与解压缩的结果送到标准输出,适用于文本内容-d-decompress解压缩-f-force在压缩或解压缩时,若输出的目标文件与现有文件同名,默认不会覆盖现有文件。请使用此参数强制覆盖-h-help帮助提示-k-keep压缩或解压缩后,默认会删除源文件。使用此参数保留源文件-s-small降低程序运行时内存的占用量-t-test测试压缩文件的完整性-v-verbose压缩或解压缩文件时,显示详细的信息-z-compress强制执行压缩-V-version显示bzip2版本信息--repetitive-bestN/A一般用于有大量重复内容的文本,该参数可提高压缩效果--repetitive-fastN/A一般用于有大量重复内容的文本,该参数可加快压缩效果


linux上解压的redis没有bin linux解压bz2_源文件_04


linux上解压的redis没有bin linux解压bz2_linux上解压的redis没有bin_05