Linux系统中安装使用Bzip2来压缩文件的方法讲解

安装 Bzip2命令如下:

复制代码代码如下:

make -f Makefile-libbz2_so &&

make &&

make install &&

cp bzip2-shared /bin/bzip2 &&

ln -s libbz2.so.1.0 libbz2.so &&

cp -a libbz2.so* /lib &&

rm /lib/libbz2.so &&

ln -s ../../lib/libbz2.so.1.0 /usr/lib/libbz2.so &&

rm /usr/bin/{bunzip2,bzcat,bzip2} &&

mv /usr/bin/{bzip2recover,bzless,bzmore} /bin &&

ln -s bzip2 /bin/bunzip2 &&

ln -s bzip2 /bin/bzcat

尽管不是一个必需的部分,值得说到的是有一个Tar包用的补丁,使tar程序可以更容易地用bzip2/bunzip2来压缩和解压。如果是单纯的tar,你不得不用这样的命令:bzcat file.tar.bz | tar -xv 或 tar --use-compress-prog=bunzip2 -xvf file.tar.bz2 来使用bzip2和bunzip2。这个补丁提供了 -j 选项,你可以用这样的命令: tar -xvfj file.tar.bz2 来解压一个bzip2格式的包。应用这个补丁将在后面安装Tar包的时候说到。

简介

bzip2, bunzip2 - 一种块排序文件压缩软件,v0.9.5

bzcat - 将文件解压缩至标准输出

bzip2recover - 恢复损坏的 bzip2 文件

bzip2 采用 Burrows-Wheeler 块排序文本压缩算法和 Huffman 编码方式压缩文件。 压缩率一般比基于 LZ77/LZ78 的压缩软件好得多,其性能接近 PPM 族统计类 压缩软件。

命令行参数有意设计为非常接近 GNU gzip 的形式,但也不完全相同。

bzip2 从命令行读入文件名和参数。 每个文件被名为 "原始文件名.bz2" 的压缩文件替换。 每个压缩文件具有与原文件相同的修改时间、 权限, 如果可能的话, 还具有相同的属主, 因此在解压缩时这些特性将正确地恢复。 在某些文件系统中, 没有权限、 属主或时间的概念, 或者对文件名的长度有严格限制, 例如 MSDOS, 在这种情况下,bzip2 没有保持原文件名、 属主、 权限以及时间的机制, 从这个意义上说,bzip2 对文件名的处理是幼稚的。

bzip2 和 bunzip2 在缺省情况下不覆盖已有的文件。 如果想覆盖已有的文件,要指定 -f 选项。

如果未指定文件名, bzip2 将压缩来自标准输入的数据并写往标准输出。在这种情况下, bzip2 会拒绝将压缩结果写往终端,因为这完全无法理解并且是没有意义的。

bunzip2 (以及 bzip2 -d) 对所有指定的文件进行解压缩处理。不是由 bzip2 产生的文件将被忽略,同时发出一个警告信息。 bzip2 按下列方式由压缩文件名确定解压后的文件名:

filename.bz2    解压成   filename

filename.bz     解压成   filename

filename.tbz2   解压成   filename.tar

filename.tbz    解压成   filename.tar

anyothername    解压成   anyothername.out

如果文件名的后缀不是下列之一: .bz2, .bz, .tbz2 或 .tbz, .bzip2 将抱怨无法确定原始文件名,并采用原文件名加 .out 作为解压缩文件名。

在压缩时,如果不提供文件名,bzip2 将从标准输入读取数据,压缩结果写往标准输出。

bunzip2 能够正确地解压由两个或更多个压缩文件连在一起的文件。 解压的结果为相应的连在一起的未压缩文件。

bzip2 也支持对连在一起的压缩文件的完整性检查(-t选项)。

同样可采用 -c 选项将文件压缩或解压缩至标准输出。 多个文件可通过这种方式压缩或解压缩。 输出结果被依次送往标准输出。 采用这种方式对多个文件的压缩将生成包含 多个压缩文件的数据流。这样的数据流只能被 0.9.0 版或其后续版本的 bzip2 正确解压。较早版本的 bzip2 会在解压完第一个文件之后停止。

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

bzip2 可从环境变量 BZIP2 和 BZIP 中依次读取参数, 并在命令行参数之前对其进行处理。 这是提供缺省选项的方便途径。

即使压缩后的文件略大于原文件, 压缩也总是照样进行。 小于大约 100 字节的文件压缩后倾向于变大, 因为会有一个 50 字节的数据头。 对于随机数据 (包括大多数压缩软 件的输出), 大约每字节压成 8.05 位, 放大率约为 0.5%。

bzip2 采用 32 位 CRC 校验码作自我检查,以确认解压后的文件与原始文件相同。 这可用于检测压缩文件是否损坏,并防止 bzip2 中未知的缺陷(运气好的话这种可能性非常小)。 数据损坏而未检测到的几率非常之小, 对于每个被处理的文件大约是四十亿分之一。 检查是在解压缩时进行的, 因此它只能说明某个地方出问题了。 它能帮助恢复原始未压缩的数据。可以用 bzip2recover 来尝试从损坏的文件中恢复数据。

返回值:正常退出返回 0, 出现环境问题返回 1 (文件未找到,非法的选项,I/O错误等), 返回 2 表明压缩文件损坏,出现导致 bzip2 紧急退出的内部一致性错误(例如缺陷)时返回 3。

参数-c --stdout

将数据压缩或解压缩至标准输出。

-d --decompress

强制解压缩。 bzip2, bunzip2 以及 bzcat 实际上是同一个程序,进行何种操作将根据程序名确定。 指定该选项后将不考虑这一机制,强制 bzip2 进行解压缩。

-z --compress

-d 选项的补充:强制进行压缩操作,而不管执行的是哪个程序。

-t --test

检查指定文件的完整性,但并不对其解压缩。 实际上将对数据进行实验性的解压缩操作,而不输出结果。

-f --force

强制覆盖输出文件。通常 bzip2 不会覆盖已经存在的文件。该选项还强制 bzip2 打破文件的硬连接,缺省情况下 bzip2 不会这么做。

-k --keep

在压缩或解压缩时保留输入文件(不删除这些文件)。

-s --small

在压缩、 解压缩及检查时减少内存用量。 采用一种修正的算法进行压缩和测试, 每个数据块仅需要 2.5 个字节。 这意味着任何文件都可以在 2300k 的内存中进行解压缩, 尽管速度只有通常情况下的一半。

在压缩时,-s将选定 200k 的块长度,内存用量也限制在 200k 左右, 代价是压缩率会降低。 总之,如果机器的内存较少(8兆字节或更少), 可对所有操作都采用-s选项。参见下面的内存管理。

-q --quiet

压制不重要的警告信息。属于 I/O 错误及其它严重事件的信息将不会被压制。

-v --verbose

详尽模式 -- 显示每个被处理文件的压缩率。 命令行中更多的 -v 选项将增加详细的程度, 使 bzip2 显示出许多主要用于诊断目的信息。

-L --license -V --version

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

-1 to -9

在压缩时将块长度设为 100 k、200 k .. 900 k。 对解压缩没有影响。参见下面的内存管理。

--

将所有后面的命令行变量看作文件名,即使这些变量以减号"-"打头。 可用这一选项处理以减号"-"打头的文件名, 例如:bzip2 -- -myfilename.

--repetitive-fast --repetitive-best

这些选项在 0.9.5 及其以上版本中是多余的。 在较早的版本中,这两个选项对排序算法 的行为提供了一些粗糙的控制,有些情况下很有用。 0.9.5 及其以上版本采用了改进的算法而与这些选项无关。

例:例a,压缩

复制代码代码如下:

[root@localhost ~]# bzip2 -z abc.sh #压缩

复制代码代码如下:

[root@localhost ~]# bzip2 -kv abc.sh #压缩原文保留

abc.sh:   1.220:1,  6.557 bits/byte, 18.04% saved, 255 in, 209 out.

复制代码代码如下:

[root@localhost ~]# bzip2 -9 -c abc.sh >abc.bz2 #压缩原文保留

例b,解压

复制代码代码如下:

root@tnak-VirtualBox:/home/tnak# bzip2 -dv abc.sh.bz2

abc.sh.bz2: done相关阅读:

MAC如何关闭Finder文件预览让运行速度加快

C++深度优先搜索的实现方法

jsp分页显示完整实例

android 横竖屏限制的配置方法

php邮件发送的两种方式

php学习笔记之基础知识

MyBatis自定义类型转换器实现加解密

详解Java类库的概念以及import的使用方法

C#编程实现获取文件夹中所有文件的文件名

一款基于jQuery的图片场景标注提示弹窗特效

java模拟PHP的pack和unpack类

JSON传递bool类型数据的处理方式介绍

JavaScript控制图片加载完成后调用回调函数的方法

Win10如何设置共享项目列表中项目的数量默认就那几个

php 安装 bzip2,Linux_Linux系统中安装使用Bzip2来压缩文件的方法讲解,安装 Bzip2命令如下:复制代码 - phpStudy...相关推荐

  1. linux环境没有bzip2,Linux系统中安装使用Bzip2来压缩文件的方法讲解

    安装 Bzip2命令如下: 复制代码 代码如下: make -f Makefile-libbz2_so && make && make install &&am ...

  2. linux bzip2压缩文件,Linux系统中安装使用Bzip2来压缩文件的方法讲解

    安装 Bzip2命令如下: 复制代码代码如下: make -f Makefile-libbz2_so && make && make install && ...

  3. 如何安装整个linux系统中所需要的mp3播放库插件? 可以在安装rpmfusion仓库后直接通过dnf install进行按照就可以了...

    在vi的界面中, 前面的数字, 表示一行. 而对于中文而言, 并不一定是"一个文本行"就是一行, 而是以 回车(硬回车)为标志, 来判定一行的. 而dd, yy等也是以" ...

  4. iphone win7无法识别_win7系统中iTools无法识别苹果设备的解决方法

    很多win7系统用户都喜欢在电脑中安装iTools来对苹果设备进行管理,然而有时候会遇到iTools无法识别苹果设备的情况,该怎么办呢,下面就随系统城小编一起来看看win7系统中iTools无法识别苹 ...

  5. win7里面计算机叫什么,W7系统中的mrt.exe是什么文件

    我们在使用w7系统的时候,只要我们打开任务管理就可以看得到有一个mrt.exe 程序在运行,也不知道mrt.exe 是什么进程的,可不可以禁止.那w7系统中的mrt.exe 是什么文件呢?现在就随小编 ...

  6. linux进程看门狗使用方式,Linux系统中基于看门狗的精细化进程监控方法及系统的制作方法...

    Linux系统中基于看门狗的精细化进程监控方法及系统的制作方法 [技术领域] [0001] 本发明涉及Linux系统的进程监控技术领域,特别是涉及一种Linux系统中基于看 门狗的精细化进程监控方法及 ...

  7. 个人计算机的防毒软件无法防御,在win10系统中无法启动defender防御软件的解决方法...

    软件大小: 3.56 MB 软件版本: 3.3.30.180 软件类型: 系统补丁 查看详情 直接下载 win10系统是我们现在都在使用的系统,下面小编为大家在win10系统中无法启动defender ...

  8. html 插入本地视频,win7系统中Word文档插入本地视频的方法【图文】

    win7系统安装Office办公软件无论生活还是办公对大家的帮助都是很大的,有时候编辑word文档需要插入本地视频,很多熟悉Office的朋友都知道在PPT中插入视频很方便,直接点击插入选项卡的视频选 ...

  9. putty 串口暂停_win7系统中使用putty串口设置超级终端的方法

    我们在win7系统的使用中,有很多的小伙伴想要知道我们在win7系统电脑中使用putty串口的方法,putty串口是我们在设置我们电脑的设置超级终端的时候使用到的,很多的小伙伴还不会putty串口的使 ...

最新文章

  1. .tcl文件_TCL电视如何安装第三方软件?当贝市场分享最新教程
  2. onMeasure onLayout用法,区别
  3. 【目标检测_CentripetalNet】CentripetalNet: Pursuing High-quality Keypoint Pairs for Object Detection_2020
  4. jzoj1402-偷懒的小X【贪心】
  5. CentOS7种搭建FTP服务器 1
  6. 周鸿祎:数字孪生时代 网络攻击影响力更甚核弹
  7. 马云今日正式退休!卸任后的他,仍有12个身份...
  8. java switch finally_JavaSE
  9. Oracle数据库块的物理损坏与逻辑损坏
  10. sparkwordcount
  11. Foobar2000使用学习
  12. 职称计算机萧山考点地址,杭州各科目考点一览表(地址+考试时间+电话)
  13. 钉钉html缓存,电脑钉钉的缓存文件路径
  14. supermap mysql_SuperMap iMobile for Android定位实现
  15. Prompt learning系列之入门篇
  16. 基于TCP的socket详解(Linux系统)
  17. 修改Docker默认安装路径
  18. Android类似微信详细地址选择(高德地图)
  19. NEO4J的安装配置及使用总结
  20. 【深度学习】Pytorch chunk函数

热门文章

  1. [TIP]命令行快速查看图片(Ubuntu)
  2. 信息安全-网络安全漏洞防护技术原理与应用
  3. WZOI-279进制转换
  4. 法大大SDK使用-实名认证
  5. 口琴谱_光阴的故事_简谱
  6. 学生信息管理系统----登录拦截功能
  7. 微信小程序 更新版本操作
  8. PLC中ST编程的单按钮启停
  9. 腾讯官方 QQ for Linux 新版本开始公测
  10. 2012考研数学二第(17)题——积分应用:求面积、旋转体的体积+导数应用:曲线相切