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

📄 0240tarcompress.htm

📁 鸟哥LINUX 学习课本
💻 HTM
📖 第 1 页 / 共 3 页
字号:
与 gzip 是可以适用在一个档案的压缩上面,但是如果是要压缩一个目录呢?!这时该如何是好?!呵呵!tar 就派上用场了! tar 可以将整个目录或者是规定的档案都整合成一个档案!例如上面的第三个范例,他可以将/home/test 底下的档案全部整合成一个档案!而第一个范例中,则是将目录整合成一个档案!同时,tar 可以配合 gzip (这个 gzip 的功能已经已经附加上 tar 里面去了),同时整合并压缩!呵呵!很方便吧!『</font><b><font color="#000066">tar用来作备份是很重要的指令</font></b><font color="#000000">! 』而由于 tar整合过后的档案我们通常会取名为 *.tar ,而如果还含有 gzip 的压缩属性,那么就取名为*.tar.gz 啰!取这个文件名只是为了方便我们记忆这个档案是什么属性罢了!并没有实际的意义在!</font></li></ul><font color="#000000"> </font><ul><li><font color="#000000">另外,需要注意的是,在使用的参数方面,有还有几个有用的参数需要来了解一番,亦即是-p 与 -P 这两个!如果你曾经在 crontab 里面下达过一些备份的指令时,那么常常会收到root 的信件,就是说,系统会告诉你『我将 / 的 tar 里头的内容拿掉了!』也就是说,原本你备份的档案是/home/test ,但是由于担心未来你在解开压缩的时候,会产生一些困扰,因为在tar 里面的档案如果是具有『绝对路径』的话,那么你解开的档案将会『一定』在该路径下也就是/home/test,而不是绝对路径(这里请用心的想一想!),这样子的最大困扰是,万一有人拿走了你的这个档案,并且将该档案在他的系统上面解开!万一他的系统上面正巧也有/home/test 这个目录,哈哈!他的档案就会『正巧』被覆盖了!所以啰,在预设的情况中,如果是以『绝对路径』来建立打包档案,那么将会自动的将/ 拿掉!这是为了刚刚说明的『安全』为前提所做的默认值。好了!但是你就是要以绝对路径来建立打包的档案!那么就加入-P 这个参数吧(请注意!是大写字符)!这样就可以啦!那么 -p 是什么(小写字符)?呵呵!那个-p 是 permission 的意思,也就是『权限』啦!使用 -p 之后,被打包的档案将不会依据使用者的身份来改变权限喔!</font></li></ul><font color="#000000"> </font><ul><li><font color="#000000">这里还有一个值得注意的参数呦!那就是在备份的情况中很常使用的-N 的这个参数!你可以参考一下上面的例子就可以知道啦!在这个例子当中,相当重要的就是那个日期啦!在备份的情况当中,我们都希望只要备份较新的档案就好了,为什么呢?因为旧的档案我们已经有备份啰!干嘛还要再备份一次,浪费时间也浪费系统资源!这个时候此一参数就显的相当的重要了啊!</font></li></ul><font color="#000000"> </font><ul><li><font color="#000000">在上面的例子中,最后一个例子很有趣『</font><font color="#000066" face="SimSun">tarcvf - /home | tar -xvf - </font><font color="#000000">』!他是直接以管线命令『pipe 』来进行压缩、解压缩的过程!在上面的例子中,我们想要『将 /home 底下的数据直接copy 到目前所在的路径,也就是 /root 底下来』,但是又觉得使用 cp -r 有点麻烦,那么就直接以这个打包的方式来打包,其中,指令里面的- 就是表示那个被打包的档案啦!由于我们不想要让中间档案存在,所以就以这一个方式来进行复制的行为啦!</font></li></ul><font color="#000000"> </font><ul><li><font color="#000000">tar 的功能相当的多,而由于他是经由『打包』之后再处理的一个过程,所以常常我们会听到tarball 的档案,那就是经由 tar 打包再压缩的档案啦!此外, tar 也可以用在备份的储存媒体上面,最常见的就是磁带机了!假设我的磁带机代号为/dev/st0 ,那么我要将我的 /home 底下的数据都给他备份上去时,就是使用 tar/dev/st0 /home 就可以啦!很不错吧!</font></li></ul><font color="#000000"> </font><ul><font color="#000000">在 Linux 当中, gzip 已经被整合在 tar 里面了!但是Sun 或者其它较旧的 Unix 版本中, 当中的 tar 并没有整合 gzip ,所以如果你需要解压缩的话,就需要这么做:</font><ul><font color="#000066" face="SimSun"> </font><br><font color="#000066" face="SimSun">gzip -d testing.tar.gz</font><br><font color="#000066" face="SimSun">tar -xvf testing.tar</font><br><font color="#000066" face="SimSun"> </font></ul><font color="#000000">第一个步骤会将档案解压缩,第二个步骤才是将数据解出来!与其它压缩程序不太一样的是,bzip2, gzip 与 compress 在没有加入特殊参数的时候,原先的档案会被取代掉,但是使用tar 则原来的与后来的档案都会存在呦!</font></ul><font color="#000000"> </font><br><hr WIDTH="100%"><li><a NAME="cpio"></a><b><font color="#000099">cpio:</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">cpio -covB&nbsp; > [file|device]</font><font color="#FF9900">&lt;==备份</font></font><br><font size=-1 face="SimSun"><font color="#FFFFFF">[root @test/root ]# </font><font color="#FFFF00">cpio -icduv &lt; [file|device]</font><font color="#FF9900">&lt;==还原</font></font><br><font size=-1 color="#FF9900" face="SimSun">参数说明:&nbsp;</font><br><font size=-1 color="#FF9900" face="SimSun">-o :将资料copy 输出到档案或装置上&nbsp;</font><br><font size=-1 color="#FF9900" face="SimSun">-i :将数据自档案或装置copy 出来系统当中&nbsp;</font><br><font size=-1 color="#FF9900" face="SimSun">-t :查看 cpio建立的档案或装置的内容&nbsp;</font><br><font size=-1 color="#FF9900" face="SimSun">-c :一种较新的portable format 方式储存&nbsp;</font><br><font size=-1 color="#FF9900" face="SimSun">-v :让储存的过程中文件名称可以在屏幕上显示&nbsp;</font><br><font size=-1 color="#FF9900" face="SimSun">-B :让预设的Blocks 可以增加至 5120 bytes ,预设是 512 bytes !&nbsp;</font><br><font size=-1 color="#FF9900" face="SimSun">   这样的好处是可以让大档案的储存速度加快(请参考i-nodes 的观念)&nbsp;</font><br><font size=-1 color="#FF9900" face="SimSun">-d :自动建立目录!由于cpio 的内容可能不是在同一个目录内,</font><br><font size=-1 color="#FF9900" face="SimSun">&nbsp;&nbsp;&nbsp;&nbsp;如此的话在反备份的过程会有问题! 这个时候加上 -d 的话,</font><br><font size=-1 color="#FF9900" face="SimSun">&nbsp;&nbsp;&nbsp;&nbsp;就可以自动的将需要的目录建立起来了!&nbsp;</font><br><font size=-1 color="#FF9900" face="SimSun">-u :自动的将较新的档案覆盖较旧的档案!&nbsp;</font><br><font size=-1 color="#FFFFCC" face="SimSun">范例:&nbsp;</font><br><font size=-1 face="SimSun"><font color="#FFFFFF">[root @test/root]# </font><font color="#FFFF00">find / -print | cpio -covB > /dev/st0&nbsp;</font></font><br><font size=-1 color="#FF9900" face="SimSun">将搜寻到的档案存到磁带机&nbsp;</font><p><font size=-1 face="SimSun"><font color="#FFFFFF">[root @test/root]# </font><font color="#FFFF00">cpio -icduv &lt; /dev/st0&nbsp;</font></font><br><font size=-1 color="#FF9900" face="SimSun">将磁带机的数据还原回来!&nbsp;</font><p><font size=-1 face="SimSun"><font color="#FFFFFF">[root @test/root]# </font><font color="#FFFF00">cpio -icdvt &lt; /dev/st0 > /tmp/content&nbsp;</font></font><br><font size=-1 color="#FF9900" face="SimSun">将磁带机的内容(文件名而已)转存到/tmp/content&nbsp;</font><p><font size=-1 face="SimSun"><font color="#FFFFFF">[root @test/root]#</font><font color="#FFFF00"> find / -type -f | cpio -o > /tmp/root.cpio&nbsp;</font></font><br><font size=-1 face="SimSun"><font color="#FFFFFF">[root @test/root]#</font><font color="#FFFF00"> cpio -i &lt; /tmp/root.cpio&nbsp;</font></font><br><font size=-1 color="#FF9900" face="SimSun">上面这个例子可以马上实作看看!先输出到/tmp/root.cpio 这个档案,然后再给他还原回来!</font></td></tr></table>这个 cpio 还蛮神奇的呢!他最适用于备份的时候使用的一个指令了!为什么呢?因为他并不像cp 一样,可以直接的将档案给他 copy 过去,例如 cp * /tmp 就可以将所在目录的所有档案copy 到 /tmp 底下,在 cpio 这个指令的用法中,由于 cpio 无法直接读取档案,而是需要『每一个档案或目录的路径连同文件名一起』才可以被记录下来!因此,cpio 最常跟 find 这个指令一起使用了!这个 cpio 好像不怎么好用呦!但是,嘿嘿!他可是备份的时候的一项利器呢!因为他可以备份任何的档案,包括/dev 底下的任何装置档案!呵呵!所以他可是相当重要的呢!!您说是吧! 而由于cpio 必需要配合其它的程序,例如 find 来建立档名,所以, cpio 与管线命令及命令重导向的相关性就相当的重要了!上面的例子刚好可以用来复习一下上一章节里面提到的内容!加油啦!<br> <ul><li>备份:在备份的用法当中,他可以直接跟输出到档案或者是装置当中,但是如前面说过的,你必须要配合find 这个指令较好呦!那个 -o 表示将档案或目录输出到右边去的意思!还记得命令重导向吗?对啦!就是那个东西啰!在上面的例子中,我们将备份的数据给他copy 到磁带机里头去!那个磁带机的装置代号就是 /dev/st0 啰!</li></ul> <ul><li>还原:那么如何给他反过来解开呢?呵呵!可以直接给他下达 cpio -i 就是 input就对啦!例如上头的例子啰!这个指令可以多看看呢</li></ul></ul></blockquote><hr WIDTH="100%"><a NAME="FAQ"></a><font size=+1 color="#000099">本章习题练习( 要看答案请将鼠标移动到『答:』底下的空白处,按下左键圈选空白处即可察看)</font><br><hr WIDTH="100%"><font size=-1 color="#000066" face="SimSun">2003/02/09:第一次完成</font><br><font size=-1 color="#000066" face="SimSun">2003/05/05:修改tar 的部分内容,尤其是 -P 这个参数的配合用法</font><br><hr WIDTH="100%"><font size=-1 color="#3333FF" face="SimSun">2003/02/09以来统计人数</font><br><img SRC="http://linux.vbird.org/cgi-bin/Count.cgi?dd=A&ft=0&sh=T&pad=Y&df=vbird_linux_basic_0240tarcompress.dat" NOSAVE height=15 width=60 align=ABSCENTER><hr WIDTH="100%"><center><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><font size=-1 color="#000066">Designed by <a href="mailto:vbird@tsai.adsldns.org">VBird</a>during 2001-2003.&nbsp; Aerosol Lab.</font></center></body></html>

⌨️ 快捷键说明

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