⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0240tarcompress.htm

📁 鸟哥LINUX 学习课本
💻 HTM
📖 第 1 页 / 共 3 页
字号:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en"><html><head>   <meta http-equiv="Content-Type" content="text/html; ">   <meta name="Author" content="VBird">   <meta name="GENERATOR" content="Mozilla/4.5 [zh-TW] (WinNT; I) [Netscape]">   <title>鸟哥的 Linux 私房菜 -- Linux 档案压缩指令</title>	<!-- saved from url=(0022)http://internet.e-mail --><style>   <!--   body{background-image=url(http://linux.vbird.org/VBirdLinux.jpg);background-ATTACHMENT=FIXED}   --></style></head><body background="http://linux.vbird.org/VBirdLinux.jpg" nosave><center><center><b><font size=+2 color="#3333FF"><font face="SimSun">鸟哥的</font><font face="Times New Roman,Times"> Linux </font><font face="SimSun">与</font><font face="Times New Roman,Times"> ADSL </font><font face="SimSun">私房菜</font></font></b><br><a href="http://linux.vbird.org" target="_top"><img SRC="http://linux.vbird.org/VBirdTitle2.jpg" NOSAVE BORDER=0 height=25 width=90></a><a href="http://linux.vbird.org/linux_basic"><img SRC="http://linux.vbird.org/icon_system.gif" NOSAVE BORDER=0 height=25 width=90></a><a href="http://linux.vbird.org/linux_server"><img SRC="http://linux.vbird.org/icon_server.gif" NOSAVE BORDER=0 height=25 width=90></a><a href="http://linux.vbird.org/linux_security"><img SRC="http://linux.vbird.org/icon_security.jpg" NOSAVE BORDER=0 height=25 width=90></a><a href="http://phorum.vbird.org" target="_blank"><img SRC="http://linux.vbird.org/icon_forums.gif" NOSAVE BORDER=0 height=25 width=90></a><a href="http://linux.vbird.org/adsl"><img SRC="http://linux.vbird.org/icon_adsl.gif" NOSAVE BORDER=0 height=25 width=90></a><br><hr WIDTH="100%"></center><font size=+2 color="#3333FF" face="SimSun"><a href="0240tarcompress.php.html" target="_self">档案的压缩与打包</a></font></center><div align=right><font size=-1 color="#3333FF" face="SimSun">最近更新日期:2003/05/02</font></div><font size=+1 color="#000099"><a href="#compress_tech">压缩的用途与技术</a></font><br><font size=+1 color="#000099"><a href="#compress_name">Linux压缩档案的附档名</a></font><br><font size=+1 color="#000099"> <a href="#compress">compress</a></font><br><font size=+1 color="#000099"> <a href="#gzip">gzip, zcat</a></font><br><font size=+1 color="#000099"> <a href="#bzip2">bzip2, bzcat</a></font><br><font size=+1 color="#000099"> <a href="#tar">tar</a></font><br><font size=+1 color="#000099"> <a href="#cpio">cpio</a></font><br><font size=+1 color="#000099"><a href="#FAQ">本章习题练习</a></font><br><hr WIDTH="100%"><a NAME="compress_tech"></a><font size=+1><font color="#000099">压缩的用途与技术</font>:</font><blockquote>您是否有过文件档案太大,导致无法以一片软盘将他复制完成的困扰?又,您是否有过,发现一个软件里面有好多档案,这些档案要将他复制与携带都很不方便的问题?还有,您是否有过要备份某些重要数据,偏偏这些数据量太大了,耗掉了你很多的硬盘与磁盘空间呢?这个时候,那个好用的『<font color="#000099">档案压缩</font>』技术可就派的上用场了!因为这些比较大型的档案透过所谓的档案压缩技术之后,可以将他的磁盘使用量降低,可以达到减低档案容量的效果,此外,有的压缩程序还可以进行容量限制,使一个大型档案可以分割成为数个小型档案,以方便软盘片携带呢!<br> <br>那么什么是『档案压缩』呢?我们来稍微谈一谈他的原理好了。目前我们使用的计算机系统中都是使用所谓的bytes 单位来计量的!不过,事实上,计算机最小的计量单位应该是 bits 才对啊,此外,我们也知道1 byte = 8 bits 。但是如果今天我们只是记忆一个数字,亦即是 1 这个数字呢?他会如何记录?假设一个byte 可以看成底下的模样:(注:由于 1 byte = 8 bits ,所以每个 byte 当中会有8 个空格,而每个空格可以是 0, 1 ,这里仅是做为一个约略的介绍,读者不必刻意记忆)<blockquote>□□□□□□□□</blockquote>而由于我们记录数字是 1 ,考虑计算机所谓的二进制喔,如此一来, 1 会在最右边占据1 个 bit ,而其它的 7 个 bits 将会自动的被填上 0 啰!你看看,其实在这样的例子中,那7 个 bits 应该是『空的』才对!不过,为了要满足目前我们的操作系统数据的存取,所以就会将该数据转为byte 的型态来记录了!而一些聪明的计算机工程师就利用一些复杂的计算方式,将这些没有使用到的空间『丢』出来,以让档案占用的空间变小!这就是压缩的技术啦!简单的说,你可以将他想成,其实档案里面有相当多的『空间』存在,并不是完全填满的,而『压缩』的技术就是将这些『空间』填满,以让整个档案占用的容量下降!不过,这些『压缩过的档案』并无法直接被我们的操作系统所使用的,因此,若要使用这些被压缩过的档案数据,则必须将他『还原』回来未压缩前的模样,那就是所谓的『解压缩』啰!而至于压缩前与压缩后的档案所占用的磁盘空间大小,就可以被称为是『压缩比』啰!更多的技术文件或许你可以参考一下<a href="ftp://swrinde.nde.swri.edu/pub/png/documents/zlib/rfc-gzip.html" target="_blank">GNU计划当中关于压缩指令 gzip 的说明文件</a>。当然,我 <a href="0240tarcompress_gzip.php.html">这里</a>也保留一份数据,做为未来参考之用呢!<br> <br>这个『压缩』与『解压缩』的动作有什么好处呢?最大的好处就是压缩过的档案容量变小了,所以你的硬盘容量无形之中就可以容纳更多的数据,此外,在一些网络数据的传输中,也会由于数据量的降低,好让网络频宽可以用来作更多的工作!而不是老是卡在一些大型的档案上面呢!目前很多的WWW 网站也是利用档案压缩的技术来进行数据的传送,好让网站的可利用率上升喔!(注<i><font color="#000066">:这种技术蛮有趣的!他让您网站上面『看的到的数据』在经过网络传输时,使用的是『压缩过的数据』,等到这些压缩过的数据到达你的计算机主机时,再进行解压缩,由于目前的计算机运算速度相当的快速,因此其实在网页浏览的时候,时间都是花在『数据的传输』上面,而不是CPU 的运算啦!,如此一来,由于压缩过的数据量降低了,自然传送的速度就会增快不少!</font></i>)若您是一位软件工程师,那么相信您也会喜欢将你自己的软件压缩之后提供大家下载来使用,毕竟没有人喜欢自己的网站天天都是频宽满载的吧?!举个例子来说,Linux 2.4.19 完整的核心大小约有 200 MB 左右,而由于核心主要多是 ASCII code的存文字型态档案,这种档案的『多余空间』最多了。而一个提供下载的压缩过的2.4.19 核心大约仅有 30MB 左右,差了几倍呢?您可以自己算一算喔!</blockquote><hr WIDTH="100%"><a NAME="compress_name"></a><font size=+1 color="#000099">Linux压缩档案的附档名</font><blockquote>如果您常常在网络上面捉 Linux 的数据下来玩的话,大概会晓得的是,这些供人下载的档案通常都是『压缩』过的!为了什么?上面已经稍微提过啦!呵呵!压缩过的档案具有节省频宽、节省磁盘空间等等的优点,并且还方便携带呢!^_^ !而,您应该也会知道,这些被压缩过的档案,通常其附档名都是『<font color="#000099" face="SimSun">*.tar, *.tar.gz, *.tgz, *.gz, *.Z, *.bz2 </font>』等等的,为什么要订定这些压缩档案附档名为这样的模样呢?这是因为在Linux 上面压缩的指令相当的多,并且,这些压缩指令可能无法针对每种压缩档案都可以解的开,毕竟目前的压缩技术五花八门,每种压缩计算的方法都不是完全相同的,所以啰,当你捉到某个压缩档时,自然就需要知道压缩他的是那个指令啦,好用来对照着解压缩啊!^_^!也就是说,虽然 Linux 档案的属性基本上是与文件名没有绝对关系的,能不能执行与他的档案属性有关而已,与文件名的关系很小!但是,为了帮助我们小小的人类脑袋瓜子,所以适当的文件名称附档名还是必要的!因此,目前就有一些常常见到的压缩档案的附档名啦!我们仅列出常见的几样在底下,给大家权做参考之用:<ul><li><font color="#000066" face="SimSun">&nbsp;*.Z&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;compress 程序压缩的档案;</font></li><li><font color="#000066" face="SimSun">&nbsp;*.bz2&nbsp;&nbsp;&nbsp;&nbsp;bzip2 程序压缩的档案;</font></li><li><font color="#000066" face="SimSun">&nbsp;*.gz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gzip 程序压缩的档案;</font></li><li><font color="#000066" face="SimSun">&nbsp;*.tar&nbsp;&nbsp;&nbsp;&nbsp;tar 程序打包的数据,并没有压缩过;</font></li><li><font color="#000066" face="SimSun">&nbsp;*.tar.gz&nbsp; tar 程序打包的档案,其中并且经过gzip 的压缩</font>!</li></ul>目前常见的压缩程序主要就是如同上面提到的附档名对应的那些指令啦!最早期的要算是compress 这个家伙了,而后,后来的 <a href="http://www.gnu.org" target="_blank">GNU计划</a>开发出新一代的压缩指令 gzip ( GNU zip ) 用来取代 compress 这个老牌的压缩指令,再来还有bzip2 这个压缩比更好的压缩指令呢!不过,这些指令通常仅能针对一个档案来压缩与解压缩,如此一来,每次压缩与解压缩都要一大堆档案,岂不烦人?,此时,那个所谓的『打包软件』就显的很重要啦!在Unix-Like 当中,有个软件很好玩,他就是 tar 这支程序!这个 tar 可以将很多档案『打包』成为一个档案!甚至是目录也可以这么玩。不过,单纯的tar 功能仅是『打包』而已,亦即是将很多档案集结成为一个档案,事实上,他并没有提供压缩的功能,后来,<a href="http://www.gnu.org/home.zh.html" target="_blank">GNU计划</a>中,将整个 tar 与压缩的功能结合在一起,如此一来提供使用者更方便并且更强大的压缩与打包功能!<br> <br>底下我们就来谈一谈这些在 Linux 底下基本的压缩指令吧!<ul><hr WIDTH="100%"><li><a NAME="compress"></a><b><font color="#000099">compress:</font></b></li><br>语法:<table BORDER COLS=1 WIDTH="500" BGCOLOR="#000000" ><tr><td><font size=-1 face="SimSun"><font color="#FFFFFF">[root @test/root ]# </font><font color="#FFFF00">compress [-d] filename&nbsp;</font></font><br><font size=-1 color="#FFFFCC" face="SimSun">参数说明:&nbsp;</font><br><font size=-1 color="#FF9900" face="SimSun">-d&nbsp; :解压缩的参数!&nbsp;</font><br><font size=-1 color="#FFFFCC" face="SimSun">范例:&nbsp;</font><br><font size=-1 color="#FF9900" face="SimSun">先 copy /etc/man.config到 root 底下,再将他压缩看看</font><br><font size=-1 face="SimSun"><font color="#FFFFFF">[root @test/root]# </font><font color="#FFFF00">cp /etc/man.config /root</font></font><br><font size=-1 face="SimSun"><font color="#FFFFFF">[root @test/root]# </font><font color="#FFFF00">compress man.config</font></font><br><font size=-1 face="SimSun"><font color="#FFFFFF">[root @test/root]# </font><font color="#FFFF00">compress -d man.config.Z&nbsp;</font></font><br><font size=-1 face="SimSun"><font color="#FFFFFF">[root @test/root]# </font><font color="#FFFF00">uncompress man.config.Z</font></font></td></tr></table>这是用来压缩与解压缩附档名为 *.Z 的指令!所以看到 *.Z 的档案时,就应该要知道他是经由compress 这个程序压缩的呦!这是最简单的压缩指令啰!不过,使用的时候需要特别留意的是,<b><font color="#000066">当你以compress 压缩之后,如果没有下达其它的参数,那么原本的档案就会被后来的 *.Z所取代</font></b>!以上面的案例来说明:原本压缩的档案为 man.config ,那么当压缩完成之后,将只会剩下man.config.Z 这个经过压缩的档案啰!那么解压缩呢?呵呵,则是将 man.config.Z解压缩成 man.config !使用上很简单啦!解压缩除了可以使用 compress –d 这个参数之外,也可以直接使用uncompress !意思相同啦!<br> <br><hr WIDTH="100%"><li><a NAME="gzip"></a><b><font color="#000099">gzip, zcat:</font></b></li><br>语法:<table BORDER COLS=1 WIDTH="500" BGCOLOR="#000000" ><tr><td><font size=-1 face="SimSun"><font color="#FFFFFF">[root @test/root ]# </font><font color="#FFFF00">gzip [-d#] filename </font><font color="#FF9900">&lt;==压缩与解压缩</font></font><br><font size=-1 face="SimSun"><font color="#FFFFFF">[root @test/root ]# </font><font color="#FFFF00">zcat filename.gz&nbsp;</font><font color="#FFFFFF">&nbsp;&nbsp;&nbsp;</font><font color="#FF9900">&lt;==读取压缩档内容</font></font><br><font size=-1 color="#FFFFCC" face="SimSun">参数说明:&nbsp;</font><br><font size=-1 color="#FF9900" face="SimSun">-d&nbsp; :解压缩的参数!&nbsp;</font>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -