这是命令 bzip2,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
bzip2, bunzip2 - 块排序文件压缩器,v1.0.6
bzcat - 将文件解压到标准输出
bzip2recover - 从损坏的 bzip2 文件中恢复数据
概要
bzip2 [ -cdfkqstvzVL123456789 [ 档名 ... ]
bzip2 [ -h|--帮助 ]
包压缩2 [ -fkvsVL [ 档名 ... ]
包压缩2 [ -h|--帮助 ]
猫咪 [ -s [ 档名 ... ]
猫咪 [ -h|--帮助 ]
bzip2恢复 文件名
商品描述
bzip2 使用 Burrows-Wheeler 块排序文本压缩算法压缩文件,
和霍夫曼编码。 压缩通常比通过
更传统的基于 LZ77/LZ78 的压缩机,并接近 PPM 的性能
统计压缩器系列。
命令行选项特意与 GNU 压缩包, 但他们是
不相同。
bzip2 期望文件名列表伴随命令行标志。 每个文件是
替换为自身的压缩版本,名称为“original_name.bz2”。 每个
压缩文件具有相同的修改日期、权限以及所有权(如果可能)
作为相应的原件,以便这些属性可以在
减压时间。 文件名处理在没有机制的意义上是幼稚的
用于在文件系统中保留原始文件名、权限、所有权或日期
缺乏这些概念,或者有严重的文件名长度限制,例如 MS-DOS。
bzip2 和 包压缩2 默认情况下不会覆盖现有文件。 如果你想要这个
如果发生,请指定 -f 标志。
如果没有指定文件名, bzip2 从标准输入压缩到标准输出。
在这种情况下, bzip2 将拒绝将压缩输出写入终端,因为这会
完全无法理解,因此毫无意义。
包压缩2 (或 bzip2 -d) 解压缩所有指定的文件。 不是由创建的文件
bzip2 将被检测到并忽略,并发出警告。 bzip2 试图猜测
解压缩文件的文件名来自压缩文件的文件名,如下所示:
文件名.bz2 成为文件名
文件名.bz 成为文件名
文件名.tbz2 变成文件名.tar
文件名.tbz 变成文件名.tar
anyothername 变成 anyothername.out
如果文件不是以识别的结尾之一结尾, .bz2, .bz, .tbz2 or .tbz, bzip2
抱怨它无法猜测原始文件的名称,并使用原始名称
- 。出去 附加。
与压缩一样,不提供文件名会导致从标准输入解压到
标准输出。
包压缩2 将正确解压缩由两个或多个连接的文件
压缩文件。 结果是对应的未压缩的串联
文件。 还支持连接压缩文件的完整性测试 (-t)。
您还可以通过提供 -c 标志将文件压缩或解压缩到标准输出。
可以像这样压缩和解压缩多个文件。 结果输出是
按顺序馈送到标准输出。 以这种方式压缩多个文件会生成一个
包含多个压缩文件表示的流。 这样的流可以是
只有通过正确解压缩 bzip2 0.9.0 或更高版本。 早期版本 bzip2
将在解压缩流中的第一个文件后停止。
猫咪 (或 bzip2 -直流) 将所有指定的文件解压缩到标准输出。
bzip2 将从环境变量中读取参数 压缩包2 和 邮编, 以该顺序,
并将在从命令行读取任何参数之前处理它们。 这给出了一个
提供默认参数的便捷方式。
始终执行压缩,即使压缩文件略大于
原来的。 小于一百字节的文件往往会变大,因为
压缩机制在 50 字节范围内具有恒定的开销。 随机数据
(包括大多数文件压缩器的输出)以每字节约 8.05 位编码,
扩大约 0.5%。
作为自我保护的自我检查, bzip2 使用 32 位 CRC 来确保
文件的解压版本与原始版本相同。 这防
压缩数据的损坏,以及针对未检测到的错误 bzip2 (希望非常
不太可能)。 数据损坏未被发现的可能性很小,大约一
处理每个文件的机会为 XNUMX 亿。 但是请注意,检查发生
在减压时,所以它只能告诉你有问题。 它帮不了你
恢复原始未压缩数据。 您可以使用 bzip2恢复 尝试恢复数据
从损坏的文件。
返回值:0 表示正常退出,1 表示环境问题(文件未找到,无效
标志,I/O 错误,&c),2 表示损坏的压缩文件,3 表示内部
导致的一致性错误(例如,错误) bzip2 恐慌。
配置
-c --标准输出
压缩或解压缩到标准输出。
-d --解压
强制减压。 bzip2, 包压缩2 和 猫咪 实际上是同一个程序,并且
根据使用的名称来决定采取什么行动。
此标志覆盖该机制,并强制 bzip2 解压。
-z - 压缩
-d 的补充:强制压缩,无论调用名称如何。
-t - 测试
检查指定文件的完整性,但不要解压缩它们。 这真的
执行试解压并丢弃结果。
-f - 力量
强制覆盖输出文件。 一般, bzip2 不会覆盖现有的
输出文件。 还力 bzip2 打破文件的硬链接,否则
不会。
bzip2 通常拒绝解压缩没有正确魔法的文件
头字节。 但是,如果强制 (-f),它将通过未修改的文件传递此类文件。
这就是 GNU gzip 的行为方式。
-k - 保持
在压缩或解压缩过程中保留(不要删除)输入文件。
-s - 小的
减少内存使用,用于压缩、解压和测试。 文件是
使用仅需要 2.5 个字节的修改算法进行解压缩和测试
每个块字节。 这意味着任何文件都可以在 2300 k 内存中解压,
虽然速度只有正常速度的一半左右。
在压缩期间,-s 选择块大小为 200 k,这将内存使用限制为
大约相同的数字,以牺牲您的压缩比为代价。 简而言之,如果
您的机器内存不足(8 兆字节或更少),请对所有内容使用 -s。 看
下面的内存管理。
-q - 安静的
禁止不必要的警告消息。 与 I/O 错误和
其他关键事件不会被抑制。
-v --详细
详细模式——显示处理的每个文件的压缩率。 进一步 -v
增加详细程度,喷出大量信息,主要是
兴趣用于诊断目的。
-h - 帮帮我
打印帮助信息并退出。
-L - 执照 -V - 版
显示软件版本、许可条款和条件。
-1 (或 - 快速地) 至 -9 (或 - 最好的事物)
压缩时将块大小设置为 100 k、200 k ... 900 k。 没有影响的时候
解压。 请参阅下面的内存管理。 --fast 和 --best 别名是
主要是为了 GNU gzip 兼容性。 特别是,--fast 不会做事
明显更快。 而 --best 仅选择默认行为。
-- 将所有后续参数视为文件名,即使它们以破折号开头。
这样您就可以处理名称以破折号开头的文件,例如:
bzip2 -- -我的文件名。
--重复快速 --重复-最佳
这些标志在 0.9.5 及以上版本中是多余的。 他们提供了一些粗
控制早期版本中排序算法的行为,这是
有时有用。 0.9.5 及更高版本具有改进的算法,可呈现这些
标志无关。
记忆 项目管理
bzip2 以块为单位压缩大文件。 块大小影响压缩比
以及压缩和解压缩所需的内存量。 标志 -1
通过 -9 指定块大小为 100,000 字节到 900,000 字节(默认值)
分别。 在解压时,用于压缩的块大小从
压缩文件的标题,以及 包压缩2 然后为自己分配足够的内存
解压文件。 由于块大小存储在压缩文件中,因此
标志 -1 到 -9 与解压过程无关,因此被忽略。
压缩和解压缩要求(以字节为单位)可以估算为:
压缩:400 k +(8 x 块大小)
解压:100 k +(4 x 块大小),或
100 k +(2.5 x 块大小)
较大的块大小会迅速减少边际回报。 大多数压缩
来自前两三百k的块大小,一个值得牢记的事实
使用时 bzip2 在小型机器上。 同样重要的是要认识到
解压缩内存要求在压缩时通过选择块大小来设置。
对于使用默认 900 k 块大小压缩的文件, 包压缩2 大约需要3700
千字节解压。 为了支持在 4 兆字节的机器上解压任何文件,
包压缩2 可以选择使用大约一半的内存来解压缩,大约
2300 KB。 解压速度也减半,所以你应该只在以下情况下使用这个选项
必要的。 相关标志是 -s。
通常,尝试使用最大的块大小内存限制,因为
最大化实现的压缩。 压缩和解压速度差不多
不受块大小的影响。
另一个重要的点适用于适合单个块的文件——这意味着大多数
您会遇到使用大块大小的文件。 实际接触的内存量为
与文件的大小成正比,因为文件小于一个块。 为了
例如,使用标志 -20,000 压缩 9 字节长的文件将导致压缩器
分配大约 7600 k 的内存,但只触及 400 k + 20000 * 8 = 560 kbytes。
同理,解压器会分配3700k但是只接触100k+20000*4=180
千字节。
下表汇总了不同块大小的最大内存使用量。 还
Recorded 是 Calgary Text Compression Corpus 的 14 个文件的总压缩大小
总计 3,141,622 字节。 此列提供了一些关于压缩如何随
块大小。 这些数字往往低估了较大块大小的优势
较大的文件,因为语料库由较小的文件主导。
压缩解压解压语料库
标记用法用法 -s 用法大小
-1 1200k 500k 350k 914704
-2 2000k 900k 600k 877703
-3 2800k 1300k 850k 860338
-4 3600k 1700k 1100k 846899
-5 4400k 2100k 1350k 845160
-6 5200k 2500k 1600k 838626
-7 6100k 2900k 1850k 834096
-8 6800k 3300k 2100k 828642
-9 7600k 3700k 2350k 828642
恢复 数据 从 损坏的 FILES
bzip2 以块为单位压缩文件,通常为 900 KB 长。 处理每个块
独立。 如果媒体或传输错误导致多块 .bz2 文件变为
损坏,则有可能从文件中未损坏的块中恢复数据。
每个块的压缩表示由 48 位模式分隔,这使得
可以合理确定地找到块边界。 每块也
带有自己的 32 位 CRC,因此可以将损坏的块与未损坏的块区分开来。
bzip2恢复 是一个简单的程序,其目的是在 .bz2 文件中搜索块,并且
将每个块写入其自己的 .bz2 文件。 然后你可以使用 bzip2 -t 测试
生成文件的完整性,并解压缩那些未损坏的文件。
bzip2恢复 接受一个参数,损坏文件的名称,并写入一些
文件“rec00001file.bz2”、“rec00002file.bz2”等,包含提取的块。
输出文件名的设计使得在后续处理中使用通配符——
例如,“bzip2 -dc rec*file.bz2 > recovery_data”——处理
正确的顺序。
bzip2恢复 应该最适合处理大型 .bz2 文件,因为它们将包含
许多块。 在损坏的单块文件上使用它显然是徒劳的,因为
损坏的块无法恢复。 如果您希望最大程度地减少任何潜在的数据丢失
通过媒体或传输错误,您可以考虑使用较小的块进行压缩
大小。
性能 附注
压缩的排序阶段将文件中的相似字符串聚集在一起。 因为
这个,包含非常长的重复符号的文件,比如“aabaabaabaab ...”
(重复数百次)可能比正常情况下压缩得更慢。 版本 0.9.5 和
以上在这方面比以前的版本好得多。 最坏之间的比率 -
案例和平均案例压缩时间在 10:1 的范围内。 对于以前的版本,
这个数字更像是 100:1。 您可以使用 -vvvv 选项来监控进度
非常详细,如果你愿意的话。
减压速度不受这些现象的影响。
bzip2 通常会分配几兆的内存来操作,然后全部收费
以相当随机的方式覆盖它。 这意味着性能,无论是压缩还是
解压,很大程度上取决于您的机器可以为缓存提供服务的速度
错过。 因此,为了降低未命中率而对代码进行了小的更改
观察到提供了不成比例的大的性能改进。 我想 bzip2 将
在具有非常大缓存的机器上表现最佳。
洞穴
I/O 错误消息并没有它们应有的帮助。 bzip2 努力检测 I/O
错误并干净地退出,但问题的细节有时似乎更
误导。
本手册页适用于 1.0.6 版 bzip2。 由此创建的压缩数据
版本与以前的公开版本完全向前和向后兼容,
版本 0.1pl2、0.9.0、0.9.5、1.0.0、1.0.1、1.0.2 及更高版本,但具有以下内容
例外:0.9.0 及以上可以正确解压多个串联压缩
文件。 0.1pl2 不能这样做; 它会在解压缩第一个文件后停止
流。
bzip2恢复 1.0.2 之前的版本使用 32 位整数来表示
压缩文件,因此它们无法处理长度超过 512 兆字节的压缩文件。
1.0.2 及更高版本在某些支持它们的平台上使用 64 位整数(GNU
支持的目标和 Windows)。 确定 bzip2recover 是否使用
这样的限制,不加参数地运行它。 在任何情况下,您都可以建立自己的
如果您可以将 MayUInt64 设置为无符号 64 位重新编译它,则为无限制版本
整数。
使用 onworks.net 服务在线使用 bzip2