Linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。本文主要介绍Linux bzip2 命令。

1、命令简介

bzip2 :压缩或解压缩指定文件。

2、命令用法

bzip2 [optinos] [filenames ...]

3、命令描述

gzip相比,bzip2创建的存档更小,但解压时间更慢,占用的内存更多。bzip2使用Burrows-Wheeler块排序文本压缩算法和Huffman编码来压缩文件。提供的命令行选项与GNU gzip非常相似,但它们并不完全相同。bzip2需要一个文件名列表以及命令行标志。每个文件都被其本身的压缩版本替换,其名称为original_name.bz2。每个压缩文件都具有相同的修改日期、权限,如果可能的话,还具有与相应的原始文件相同的所有权,这样就可以在解压时正确地恢复这些属性。

文件名处理是简单的,因为在缺乏这些概念或有严重的文件名长度限制(如MS-DOS)的文件系统中,没有机制来保存原始文件名、权限、所有权或日期。默认情况下,bzip2bunzip2不会覆盖现有文件。要覆盖,请指定-f标志。

4、命令选项

选项

描述

-c --stdout

压缩或解压缩到标准输出。

-d --decompress

执行解压缩

-z --compress

强制执行压缩

-t --test

检查指定文件的完整性,

但不要解压缩它们。

这实际上执行了一次试解压缩并丢弃了结果。

-f --force

强制覆盖输出文件。

通常,bzip2不会覆盖现有的输出文件。

还强制bzip2中断到文件的硬链接,

否则它不会这样做。

Bzip2通常拒绝解压

那些没有正确的magic header bytes的文件。

但是,如果强制(-f),

它将不修改地通过这些文件。

这就是GNU gzip的行为方式。

-k --keep

在压缩或解压缩过程中保留(不要删除)输入文件。

-s --small

减少内存使用,用于压缩,解压缩和测试。

文件解压和测试使用一个修改的算法,

每块字节只需要2.5字节。

也就是任何文件都可以在2300k的内存中解压,

尽管速度只有正常速度的一半。

在压缩过程中,-s选择200k的块大小,

这将内存使用限制在相同的数字,

而牺牲了压缩比。简而言之,

如果您的机器内存不足(8兆或更少),

那么所有东西都使用-s

-q --quiet

抑制非必要的警告消息。

与I/O错误和其他关键事件有关的消息将不会被抑制。

-v --verbose

详细模式:显示所处理的每个文件的压缩比。

这些信息主要是出于诊断目的。

-L --license

-V --version

显示软件版本、license条款和条件。

-1 (或 --fast) to -9 (或 -best)

设置块大小为100k, 200k…压缩时900k。

解压时没有效果。--fast--best别名主要是为了GNU gzip兼容性。

特别是,--fast并不会变得更快。而--best仅仅选择默认行为。

--

将所有后续参数视为文件名,

即使它们以破折号开头。

这样就可以处理以破折号开头的文件,

例如:bzip2 -- -myfilename

--repetitive-fast,

-repetitive-best

这些标志在0.9.5及以上版本中是多余的。

他们在早期版本中对排序算法的行为提供了一些粗略的控制,

bzip现在有了一个改进的算法,它使这些标记变得无关紧要。

5、使用示例

1)压缩文件

$ bzip2 sample.txt
$ ls
sample.txt.bz2

2)要压缩文件sample.txt并保留未压缩版本并创建新文件。

$ bzip2 -k sample.txt
$ ls
sample.txt sample.txt.bz2

3)使用tar将一组文件合并成一个文件并使用bzip2将结果压缩。

$ tar -cf code.tar 1.c 2.c 3.c
$ bzip2 code.tar
$ ls
1.c 2.c 3.c code.tar.bz2

4)使用tar实现合成一个文件并压缩

$ tar -cjf code.tar 1.c 2.c 3.c
$ ls
code.tar.bz2 1.c 2.c 3.c

推荐文档