软件测试技术

当前位置:首页 > 软件测试技术

鸟哥的Linux私房菜 基础学习篇(第三版) (第九章)

第九章、档案与文件系统的压缩与打包

在Linux底下有相当多的压缩指令可以运作喔这些压缩指令可以让我们更方便从网络 上面下载大型的档案呢! 此外,我们知道在Linux底下的扩展名是没有什么很特殊的意义的,不过,针对这些压缩指令所做出来的压缩文件,为了方便记忆,还是会有一些特殊的命名方式啦!就让我们来看看吧!

1.压缩文件案的用途与技术

2. Linux系统常见的压缩指令

        2.1 compress

        2.2 gzip, zcat

        2.3 bzip2, bzcat

3.打包指令: tar

4.完整备份工具: dump, restore

5.光盘写入工具

         5.1 mkisofs :建立映像档

         5.2 cdrecord :光盘刻录工具

6.其他常见的压缩与备份工具

         6.1 dd

         6.2 cpio

7.重点回顾

8.本章习题

9.参考数据与延伸阅读

10.针对本文的建议: htp:/phorum.vbird org/viewtopic.php?t=23882

压缩文件案的用途与技术

你是否有过文件档案太大,导致无法以一片软盘将他复制完成的困扰?又,你是否有过,发现一个软件里面有好多档案,这些档案要将他复制与携带都很不方便的问题?还有,你是否有过要备份某些重要数据,偏偏这些数据量太大了,耗掉了你很多的磁盘空间呢?这个时候,那个好用的[文件压缩」技术可就派的上用场了!

因为这些比较大型的档案透过所谓的文件压缩技术之后,可以将他的磁盘使用量降低,可以达到减低档案容量的效果,此外,有的压缩程序还可以进行容量限制,使一个大型档案可以分割成为数个小型档案,以方便软盘片携带呢!

那么什么是[文件压缩」呢?我们来稍微谈一谈他的原理好了。 目前我们使用的计算机系统中都是使用所谓的bytes单位来计量的!不过,事实上,计算机最小的计量单位应该是bits才对啊,此外,我们也知道1 byte = 8 bits.但是如果今天我们只是记忆一个数字,亦即是1这个数字呢?他会如何记录?假设一个byte可以看成底下的模样:

鸟哥的Linux私房菜 基础学习篇(第三版) (第九章)

由于我们记录数字是1, 考虑计算机所谓的二进制喔,如此-来,1会在最右边占据1个bit, 而其他的7个bits将会自动的被填上0哕!你看看,其实在这样的例子中,那7个bits应该是「空的」才对!不过,为了要满足目前我们的操作系统数据的存取,所以就会将该数据转为byte的型态来记录了!而一些聪明的计算机工程师就利用一一些复杂的计算方式,将这些没有使用到的空间「丢」出来,以让档案占用的空间变小!这就是压缩的技术啦!

另外- -种压缩技术也很有趣,他是将重复的数据进行统计记录的。举例来说,如果你的数据为1111.共有100个1时,那么压缩技术会记录为「100个 1]而不是真的有100个1的位存在!这样也能够精简档案记录的容量呢!非常有趣吧!

简单的说,你可以将他想成,其实档案里面有相当多的[空间」存在,并不是完全填满的,而[压缩」的技术就是将这些[空间」填满,以让整个档案占用的容量下降!不过,这些[压缩过的档案」并无法直接被我们的操作系统所使用的,因此,若要使用这些被压缩过的档案数据,则必须将他[还原J回来未压缩前的模样,那就是所谓的[解压缩」哕!而至于压缩前与压缩后的档案所占用的磁盘空间大小,就可以被称为是[压缩比」哕!更多的技术文件或许你可以参考-下:

· RFC 1952文件: http://www.ietf.org/rfc/rfc1952.txt

· 鸟哥站上的备份:

   htp://inux.vbird.org/iux_ basic/0240tarcompress/0240tarcompress gzip.php

这个[压缩」与[解压缩」的动作有什么好处呢?最大的好处就是压缩过的档案容量变小了,所以你的硬盘容量无形之中就可以容纳更多的资料。此外,在一些网络数据的传输中 ,也会由于数据量的降低,好让网络带宽可以用来作更多的工作!而不是老是卡在一些大型的文件传输 上面呢!目前很多的www网站也是利用文件压缩的技术来进行数据的传送,好让网站带宽的可利用率上升喔!

鸟哥的Linux私房菜 基础学习篇(第三版) (第九章)

若你是一位软件工程师,那么相信你也会喜欢将你自己的软件压缩之后提供大家下载来使用,毕竟没有人喜欢自己的网站天天都是带宽满载的吧?举个例子来说, Linux 2.6.27.4完整的核心大小约有300MB左右,而由于核心主要多是ASCI code的纯文本型态档案,这种档案的[多余空间」最多了。而一个提供下载的压缩过的2.6.27.4核心大约仅有60MB左右,差了几倍呢?你可以自己算一算喔!

Linux系统常见的压缩指令:

在Linux的环境中,压缩文件案的扩展名大多是: [*.tar, *.tar.gz, *.gz, *.gz, *.Z *.bz2J, 为什么会有这样的扩展名呢?不是说Linux的扩展名没有什么作用吗?

这是因为Linux支持的压缩指令非常多,且不同的指令所用的压缩技术并不相同,当然彼此之间可能就无法互通压缩/解压缩文件案哕。所以,当你下载到某个压缩文件时,自然就需要知道该档案是由哪种压缩指令所制作出来的,好用来对照着解压缩啊!也就是说,虽然Linux档案的属性基本上是与文件名没有绝对关系的,但是为了帮助我们人类小小的脑袋瓜子,所以适当的扩展名还是必要的!底下我们就列出几个常见的压缩文件案扩展名吧:

鸟哥的Linux私房菜 基础学习篇(第三版) (第九章)

Linux.上常见的压缩指令就是gzip与bzip2, 至于compress已经退流行了。gzip 是由GNU计划所开发出来的压缩指令,该指令已经取代了compress。后来GNU又开发出bzip2 这个压缩比更好的压缩指令!不过,这些指令通常仅能针对一个档案来压缩与解压缩,如此一来,每次压缩与解压缩都要-大堆档案,岂不烦人?此时,那个所谓的[打包软件,tarJ就显的很重要啦!

这个tar可以将很多档案[打包」成为一个档案!甚至是目录也可以这么玩。不过,单纯的tar功能仅是[打包」而已,亦即是将很多档案集结成为一个档案,事实上,他并没有提供压缩的功能,后来,GNU计划中,将整个tar与压缩的功能结合在一起,如此一来提供使用者更方便并且更强大的压缩与打包功能!底下我们就来谈一谈这些在Linux 底下基本的压缩指令吧!


相关内容

文章评论

表情

共 0 条评论,查看全部
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~