00. 目录
01. 命令概述
Linux系统中bzip2命令的英文是“bunzip2”,即.bz2文件格式的压缩程序; bzip2命令系统默认是没有安装的,需要安装bzip2库才可以使用此命令。
bzip2命令采用新的压缩演算法,压缩效果比传统的LZ77/LZ78压缩演算法来得好。若没有加上任何参数,bzip2压缩完文件后会产生.bz2的压缩文件,并删除原始的文件。
02. 命令格式
bzip2 [ -cdfkqstvzVL123456789 ] [ filenames ... ]
03. 常用选项
-c或——stdout:将压缩与解压缩的结果送到标准输出;
-d或——decompress:执行解压缩;
-f或-force:bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖。请使用此参数;
-h或——help:在线帮助;
-k或——keep:bzip2在压缩或解压缩后,会删除原始文件。若要保留原始文件,请使用此参数;
-s或——small:降低程序执行时内存的使用量;
-t或——test:测试.bz2压缩文件的完整性;
-v或——verbose:压缩或解压缩文件时,显示详细的信息;
-z或——compress:强制执行压缩;
-V或——version:显示版本信息;
--repetitive-best:若文件中有重复出现的资料时,可利用此参数提高压缩效果;
--repetitive-fast:若文件中有重复出现的资料时,可利用此参数加快执行效果。
04. 参考示例
4.1 不保留原文件压缩
[deng@localhost test]$ bzip2 passwd
[deng@localhost test]$ ls
etc passwd1 passwd.bz2 test
[deng@localhost test]$
4.2 保留原文件压缩
[deng@localhost test]$ bzip2 -c passwd > passwd1.bz2
[deng@localhost test]$ ls
etc passwd passwd1.bz2 passwd.bz2 test
4.3 压缩时显示指令执行过程
[deng@localhost test]$ bzip2 -v passwd
passwd: 2.420:1, 3.306 bits/byte, 58.67% saved, 2376 in, 982 out.
[deng@localhost test]$
4.4 将当前目录下每个文件压缩成 .bz2 文件
[deng@localhost test]$ ls
a b c d e
[deng@localhost test]$ bzip2 *
[deng@localhost test]$ ls
a.bz2 b.bz2 c.bz2 d.bz2 e.bz2
[deng@localhost test]$
**注意:**如果是目录,将被忽略。
4.5 解压.bz2文件,不保留原文件
[deng@localhost test]$ ls
a.bz2 b.bz2 c.bz2 d.bz2 e.bz2
[deng@localhost test]$ bzip2 -d a.bz2
[deng@localhost test]$ ls
a b.bz2 c.bz2 d.bz2 e.bz2
[deng@localhost test]$
4.6 解压当前目录下所有的.gz文件
[deng@localhost test]$ ls
a b.bz2 c.bz2 d.bz2 e.bz2
[deng@localhost test]$ bzip2 -d *.bz2
[deng@localhost test]$ ls
a b c d e
[deng@localhost test]$
4.7 保留原文件解压
[deng@localhost test]$ bzip2 -dc passwd.bz2 > passwd
4.8 保留原文件解压到标准输出
[deng@localhost test]$ bzip2 -dc passwd.bz2
4.9 测试.bz2压缩文件的完整性,实际上不解压
[deng@localhost test]$ bzip2 -tv passwd.bz2
passwd.bz2: ok
[deng@localhost test]$
4.10 -k保留原文件压缩
[deng@localhost test]$ bzip2 -k passwd
[deng@localhost test]$ ls
etc passwd passwd1 passwd.bz2 test
[deng@localhost test]$
4.11 压缩-开头的文件
[deng@localhost test]$ touch -- -file
[deng@localhost test]$ ls
etc -file passwd passwd1 passwd.bz2 test
[deng@localhost test]$ bzip2 -- -file
[deng@localhost test]$ ls
etc -file.bz2 passwd passwd1 passwd.bz2 test
[deng@localhost test]$
这里主要是为了防止文件名中-产生以为是选项的歧义。