Bunzip2 - Linux命令 - Unix命令

名称

bzip2,bunzip2 - 一个块排序文件压缩器,v1.0.2
bzcat - 将文件解压缩到标准输出
bzip2recover - 从损坏的bzip2文件恢复数据

概要

bzip2 [ -cdfkqstvzVL123456789 ] [ 文件名... ]
bunzip2 [ -fkvsVL ] [ 文件名... ]
bzcat [ -s ] [ 文件名... ]
bzip2recover 文件名

描述

bzip2使用Burrows-Wheeler块排序文本压缩算法和霍夫曼编码来压缩文件。 压缩比一般传统的基于LZ77 / LZ78的压缩机所获得的压缩好得多,并且接近PPM系列统计压缩机的性能。

命令行选项有意与GNU gzip非常相似但它们并不完全相同。

bzip2需要伴随命令行标志的文件名列表。 每个文件都由其自身的压缩版本替换,名称为“original_name.bz2”。 每个压缩文件具有相同的修改日期,权限,并且在可能的情况下拥有相应的原始文件,以便这些属性可以在解压缩时正确恢复。 文件名处理是天真的,因为没有机制来保留缺少这些概念的文件系统中的原始文件名,权限,所有权或日期,或者具有严重的文件名长度限制,如MS-DOS。

默认情况下, bzip2bunzip2不会覆盖现有文件 。 如果您希望发生这种情况,请指定-f标志。

如果没有指定文件名,则bzip2从标准输入压缩到标准输出。 在这种情况下, bzip2会拒绝将压缩输出写入终端,因为这将完全不可理解,因此毫无意义。

bunzip2 (或bzip2 -d)解压所有指定的文件。 未被bzip2创建的文件将被检测到并被忽略,并发出警告。 bzip2尝试从压缩文件的文件名中猜测解压缩文件的文件名,如下所示:


filename.bz2成为文件名
filename.bz变成文件名
filename.tbz2变成filename.tar
filename.tbz变成filename.tar
其他名称变成anyothername.out

如果文件没有以公认的结尾, .bz2, .bz, .tbz2.tbz结尾, bzip2会抱怨它无法猜测原始文件的名称,并使用带有.out的原始名称。

与压缩一样,不提供文件名会导致从标准输入到标准输出的解压缩。

bunzip2将正确地解压缩一个文件,该文件是两个或多个压缩文件的串联。 结果是相应的未压缩文件的串联。 还支持连接压缩文件的完整性测试(-t)。

您还可以通过提供-c标志将文件压缩或解压缩到标准输出。 多个文件可能会像这样被压缩和解压缩。 结果输出顺序馈送到标准输出。 以这种方式压缩多个文件产生包含多个压缩文件表示的流。 这样的流只能通过bzip2 0.9.0或更高版本正确解压缩。 解压缩流中的第一个文件后,早期版本的bzip2将停止。

bzcat (或bzip2 -dc)将所有指定的文件解压缩到标准输出。

bzip2将按照该顺序从环境变量BZIP2BZIP读取参数,并在从命令行读取任何参数之前处理它们。 这提供了一种提供默认参数的便捷方式。

压缩始终执行,即使压缩文件略大于原始文件。 小于大约一百字节的文件往往会变大,因为压缩机制在50字节的区域内具有恒定的开销。 随机数据(包括大多数文件压缩器的输出)被编码为每字节大约8.05位,扩展大约0.5%。

为了保护您的安全, bzip2使用32位CRC来确保文件的解压缩版本与原始版本相同。 这样可以防止压缩数据的腐败,以及防止bzip2中未检测到的错误(希望不太可能)。 数据损坏未被发现的机会是微观的,每个文件处理大约有40亿的机会。 但请注意,检查是在解压缩时发生的,所以它只能告诉你有什么问题。 它无法帮助您恢复原始的未压缩数据。 您可以使用bzip2recover尝试恢复受损文件中的数据。

返回值:0表示正常退出,1表示环境问题(文件未找到,标志无效,I / O错误,&c),2表示损坏的压缩文件,3表示引起内部一致性错误(例如,错误) bzip2恐慌。

OPTIONS

-c --stdout

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

-d - 解压缩

强制减压。 bzip2, bunzip2bzcat实际上是相同的程序,并且根据使用哪个名称来决定要采取什么操作。 该标志覆盖该机制,并强制bzip2进行解压缩。

-z --compress

无论调用名称如何,-d:强制压缩的补充。

-t --test

检查指定文件的完整性,但不要解压缩它们。 这确实会进行试用减压并丢弃结果。

-f --force

强制覆盖输出文件。 通常情况下, bzip2不会覆盖现有的输出文件。 还强制bzip2打破硬链接到文件,否则它不会做。

bzip2通常会拒绝解压缩没有正确魔术字节字节的文件。 如果强制(-f),它会通过未经修改的方式传递这些文件。 这就是GNU gzip的行为。

-k - 保持

在压缩或解压缩期间保持(不要删除)输入文件。

-s --small

减少内存使用量,进行压缩,解压缩和测试。 使用修改后的算法对文件进行解压缩和测试,每个块字节只需要2.5个字节。 这意味着任何文件都可以在2300k的内存中解压,尽管速度只有普通速度的一半。

在压缩过程中,-s选择一个200k的块大小,这会将存储器的使用限制在大约相同的数值,这是以压缩比为代价的。 总之,如果你的机器内存不足(8兆字节或更少),请使用-s来表示所有内容。 请参阅下面的内存管理。

-q - 安静

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

-v - 详细

详细模式 - 显示每个处理文件的压缩比。 进一步,-v增加了详细程度,从中剔除了许多主要用于诊断目的的信息。

-L --license -V --version

显示软件版本,许可条款和条件。

-1(或--fast)至-9(或 - 最佳)

压缩时将块大小设置为100 k,200 k .. 900 k。 解压缩时无效。 请参阅下面的内存管理。 --fast和--best别名主要用于GNU gzip兼容性。 特别是,fast不会让事情变得更快。 而且 - 只是选择默认行为。

将所有后续参数视为文件名,即使它们以短划线开头。 这样您就可以处理名称以破折号开头的文件,例如:bzip2 - - myfilename。

- 重复 - 快速 - 重复 - 最佳

这些标志在0.9.5及以上版本中是多余的。 他们在早期版本中对排序算法的行为提供了一些粗略的控制,这有时是有用的。 0.9.5及以上版本有一个改进的算法,使这些标志无关。

重要提示:使用man命令%man )查看特定计算机上的命令使用方式。

相关文章