Linux環(huán)境中的文件壓縮與打包_Linux教程
您是否有過文件檔案太大,導(dǎo)致無法以一片軟碟將他復(fù)制完成的困擾?又,您是否有過,發(fā)現(xiàn)一個(gè)軟體里面有好多檔案,這些檔案要將他復(fù)制與攜帶都很不方便的問題?還有,您是否有過要備份某些重要資料,偏偏這些資料量太大了,耗掉了你很多的硬碟與磁碟空間呢?這個(gè)時(shí)候,那個(gè)好用的『檔案壓縮』技術(shù)可就派的上用場(chǎng)了!因?yàn)檫@些比較大型的檔案透過所謂的檔案壓縮技術(shù)之后,可以將他的磁碟使用量降低,可以達(dá)到減低檔案容量的效果,此外,有的壓縮程式還可以進(jìn)行容量限制,使一個(gè)大型檔案可以分割成為數(shù)個(gè)小型檔案,以方便軟碟片攜帶呢!
那么什么是『檔案壓縮』呢?我們來稍微談一談他的原理好了。目前我們使用的電腦系統(tǒng)中都是使用所謂的 bytes 單位來計(jì)量的!不過,事實(shí)上,電腦最小的計(jì)量單位應(yīng)該是 bits 才對(duì)啊,此外,我們也知道 1 byte = 8 bits 。但是如果今天我們只是記憶一個(gè)數(shù)字,亦即是 1 這個(gè)數(shù)字呢?他會(huì)如何記錄?假設(shè)一個(gè) byte 可以看成底下的模樣:(注:由于 1 byte = 8 bits ,所以每個(gè) byte 當(dāng)中會(huì)有 8 個(gè)空格,而每個(gè)空格可以是 0, 1 ,這里僅是做為一個(gè)約略的介紹,讀者不必刻意記憶 )
□□□□□□□□
而由于我們記錄數(shù)字是 1 ,考慮電腦所謂的二進(jìn)位喔,如此一來, 1 會(huì)在最右邊占據(jù) 1 個(gè) bit ,而其他的 7 個(gè) bits 將會(huì)自動(dòng)的被填上 0 啰!你看看,其實(shí)在這樣的例子中,那 7 個(gè) bits 應(yīng)該是『空的』才對(duì)!不過,為了要滿足目前我們的作業(yè)系統(tǒng)資料的存取,所以就會(huì)將該資料轉(zhuǎn)為 byte 的型態(tài)來記錄了!而一些聰明的電腦工程師就利用一些復(fù)雜的計(jì)算方式,將這些沒有使用到的空間『丟』出來,以讓檔案占用的空間變小!這就是壓縮的技術(shù)啦!簡(jiǎn)單的說,你可以將他想成,其實(shí)檔案里面有相當(dāng)多的『空間』存在,并不是完全填滿的,而『壓縮』的技術(shù)就是將這些『空間』填滿,以讓整個(gè)檔案占用的容量下降!不過,這些『壓縮過的檔案』并無法直接被我們的作業(yè)系統(tǒng)所使用的,因此,若要使用這些被壓縮過的檔案資料,則必須將他『還原』回來未壓縮前的模樣,那就是所謂的『解壓縮』啰!而至于壓縮前與壓縮后的檔案所占用的磁碟空間大小,就可以被稱為是『壓縮比』啰!更多的技術(shù)文件或許你可以參考一下GNU 計(jì)畫當(dāng)中關(guān)于壓縮指令 gzip 的說明文件 。當(dāng)然,我 這里 也保留一份資料,做為未來參考之用呢!
這個(gè)『壓縮』與『解壓縮』的動(dòng)作有什么好處呢?最大的好處就是壓縮過的檔案容量變小了,所以你的硬碟容量無形之中就可以容納更多的資料,此外,在一些網(wǎng)路資料的傳輸中,也會(huì)由于資料量的降低,好讓網(wǎng)路頻寬可以用來作更多的工作!而不是老是卡在一些大型的檔案上面呢!目前很多的 WWW 網(wǎng)站也是利用檔案壓縮的技術(shù)來進(jìn)行資料的傳送,好讓網(wǎng)站的可利用率上升喔!( 注:這種技術(shù)蠻有趣的!他讓您網(wǎng)站上面『看的到的資料』在經(jīng)過網(wǎng)路傳輸時(shí),使用的是『壓縮過的資料』,等到這些壓縮過的資料到達(dá)你的電腦主機(jī)時(shí),再進(jìn)行解壓縮,由于目前的電腦運(yùn)算速度相當(dāng)?shù)目焖�,因此其�?shí)在網(wǎng)頁(yè)瀏覽的時(shí)候,時(shí)間都是花在『資料的傳輸』上面,而不是 CPU 的運(yùn)算啦!,如此一來,由于壓縮過的資料量降低了,自然傳送的速度就會(huì)增快不少! )若您是一位軟體工程師,那么相信您也會(huì)喜歡將你自己的軟體壓縮之后提供大家下載來使用,畢竟沒有人喜歡自己的網(wǎng)站天天都是頻寬滿載的吧?!舉個(gè)例子來說, Linux 2.4.19 完整的核心大小約有 200 MB 左右,而由于核心主要多是 ASCII code 的存文字型態(tài)檔案,這種檔案的『多余空間』最多了。而一個(gè)提供下載的壓縮過的 2.4.19 核心大約僅有 30MB 左右,差了幾倍呢?您可以自己算一算喔!
Linux 壓縮檔案的附檔名
如果您常常在網(wǎng)路上面捉 Linux 的資料下來玩的話,大概會(huì)曉得的是,這些供人下載的檔案通常都是『壓縮』過的!為了什么?上面已經(jīng)稍微提過啦!呵呵!壓縮過的檔案具有節(jié)省頻寬、節(jié)省磁碟空間等等的優(yōu)點(diǎn),并且還方便攜帶呢! ^_^ !而,您應(yīng)該也會(huì)知道,這些被壓縮過的檔案,通常其附檔名都是『 *.tar, *.tar.gz, *.tgz, *.gz, *.Z, *.bz2 』等等的,為什么要訂定這些壓縮檔案附檔名為這樣的模樣呢?這是因?yàn)樵?Linux 上面壓縮的指令相當(dāng)?shù)亩�,并且,這些壓縮指令可能無法針對(duì)每種壓縮檔案都可以解的開,畢竟目前的壓縮技術(shù)五花八門,每種壓縮計(jì)算的方法都不是完全相同的,所以啰,當(dāng)你捉到某個(gè)壓縮檔時(shí),自然就需要知道壓縮他的是那個(gè)指令啦,好用來對(duì)照著解壓縮啊! ^_^!也就是說,雖然 Linux 檔案的屬性基本上是與檔名沒有絕對(duì)關(guān)系的,能不能執(zhí)行與他的檔案屬性有關(guān)而已,與檔名的關(guān)系很小!但是,為了幫助我們小小的人類腦袋瓜子,所以適當(dāng)?shù)臋n案名稱附檔名還是必要的!因此,目前就有一些常常見到的壓縮檔案的附檔名啦!我們僅列出常見的幾樣在底下,給大家權(quán)做參考之用:
· *.Z compress 程式壓縮的檔案;
· *.bz2 bzip2 程式壓縮的檔案;
· *.gz gzip 程式壓縮的檔案;
· *.tar tar 程式打包的資料,并沒有壓縮過;
· *.tar.gz tar 程式打包的檔案,其中并且經(jīng)過 gzip 的壓縮!
目前常見的壓縮程式主要就是如同上面提到的附檔名對(duì)應(yīng)的那些指令啦!最早期的要算是 compress 這個(gè)家伙了,而后,后來的 GNU 計(jì)畫開發(fā)出新一代的壓縮指令 gzip ( GNU zip ) 用來取代 compress 這個(gè)老牌的壓縮指令,再來還有 bzip2 這個(gè)壓縮比更好的壓縮指令呢!不過,這些指令通常僅能針對(duì)一個(gè)檔案來壓縮與解壓縮,如此一來,每次壓縮與解壓縮都要一大堆檔案,豈不煩人?,此時(shí),那個(gè)所謂的『打包軟體』就顯的很重要啦!在 Unix-Like 當(dāng)中,有個(gè)軟體很好玩,他就是 tar 這支程式!這個(gè) tar 可以將很多檔案『打包』成為一個(gè)檔案!甚至是目錄也可以這么玩。不過,單純的 tar 功能僅是『打包』而已,亦即是將很多檔案集結(jié)成為一個(gè)檔案,事實(shí)上,他并沒有提供壓縮的功能,后來, GNU 計(jì)畫中,將整個(gè) tar 與壓縮的功能結(jié)合在一起,如此一來提供使用者更方便并且更強(qiáng)大的壓縮與打包功能!
底下我們就來談一談這些在 Linux 底下基本的壓縮指令吧!
· compress:
語法:
[root @test /root ]# compress [-d] filename 參數(shù)說明: -d :解壓縮的參數(shù)! 范例: 先 copy /etc/man.config 到 root 底下,再將他壓縮看看 [root @test /root]# cp /etc/man.config /root [root @test /root]# compress man.config [root @test /root]# compress -d man.config.Z [root @test /root]# uncompress man.config.Z
· 這是用來壓縮與解壓縮附檔名為 *.Z 的指令!所以看到 *.Z 的檔案時(shí),就應(yīng)該要知道他是經(jīng)由 compress 這個(gè)程式壓縮的呦!這是最簡(jiǎn)單的壓縮指令啰!不過,使用的時(shí)候需要特別留意的是,當(dāng)你以 compress 壓縮之后,如果沒有下達(dá)其他的參數(shù),那么原本的檔案就會(huì)被后來的 *.Z 所取代!以上面的案例來說明:原本壓縮的檔案為 man.config ,那么當(dāng)壓縮完成之后,將只會(huì)剩下 man.config.Z 這個(gè)經(jīng)過壓縮的檔案啰!那么解壓縮呢?呵呵,則是將 man.config.Z 解壓縮成 man.config !使用上很簡(jiǎn)單啦!解壓縮除了可以使用 compress –d 這個(gè)參數(shù)之外,也可以直接使用 uncompress !意思相同啦!
·
·gzip, zcat:
語法:
[root @test /root ]# gzip [-d#] filename <==壓縮與解壓縮 [root @test /root ]# zcat filename.gz <==讀取壓縮檔內(nèi)容 參數(shù)說明: -d :解壓縮的參數(shù)! -# :壓縮等級(jí), 1 最不好, 9 最好, 6 是預(yù)設(shè)值! 范例: [root @test /root]# gzip man.config 會(huì)產(chǎn)生 man.config.gz 這個(gè)檔案 [root @test /root]# zcat man.config.gz 會(huì)讀取出 man.config 的內(nèi)容 [root @test /root]# gzip -d man.config.gz [root @test /root]# gunzip man.config.gz 解壓縮,產(chǎn)生 man.config 這個(gè)檔案 [root @test /root]# gzip -9 man.config 以最大壓縮比壓縮 testing 這個(gè)檔案!
·gzip 是用來壓縮與解壓縮附檔名為 *.gz 的指令!所以看到 *.gz 的檔案時(shí),就應(yīng)該要知道他是經(jīng)由 gzip 這個(gè)程式壓縮的呦!另外, gzip 也提供 壓縮比的服務(wù)! -1 是最差的壓縮比,但是壓縮速度最快,而 -9 雖然可以達(dá)到較佳的壓縮比(經(jīng)過壓縮之后,檔案比較小一些!),但是卻會(huì)損失一些速度!預(yù)設(shè)是 -6 這個(gè)數(shù)值! gzip 也是相當(dāng)常使用的一個(gè)壓縮指令呢!至于 zcat 則是用來讀取壓縮檔資料內(nèi)容的指令!假如我們剛剛壓縮的檔案是一個(gè)文字檔,那么你還記得如何讀取文字檔嗎?!沒錯(cuò)!就是使用 cat ,那么讀取壓縮檔呢?呵呵!就是使用 zcat 啰!由于 gzip 這個(gè)壓縮指令主要想要用來取代 compress 的,所以 compress 的壓縮檔案也可以使用 gzip 來解開喔!同時(shí), zcat 這個(gè)指令可以同時(shí)讀取 compress 與 gzip 的壓縮檔呦!
·
· bzip2, bzcat:
語法:
[root @test root]# bzip2 [-dz] filename <==壓縮解壓縮指令 [root @test root]# bzcat filename.bz2 <==讀取壓縮檔內(nèi)容指令 參數(shù)說明: -d :解壓縮的意思! -z :壓縮的意思!范例: 同樣的,我們以剛剛拷貝過來的 /root/man.config 這個(gè)檔案為例 [root @test root]# bzip2 –z man.config [root @test root]# bzcat man.config.bz2 [root @test root]# bzip2 –d man.config.bz2 [root @test root]# bunzip2 man.config.bz2
·剛剛的 compress 附檔名自動(dòng)建立為 .Z ,這里的 bzip2 則是自動(dòng)的將附檔名建置為 .bz2 啰!所以當(dāng)我們使用具有壓縮功能的 bzip2 –z 時(shí),那么剛剛的 man.config 就會(huì)自動(dòng)的變成了 man.config.bz2 這個(gè)檔名啰!好了,那么如果我想要讀取這個(gè)檔案的內(nèi)容呢?是否一定要解開?當(dāng)然不需要啰!可以使用簡(jiǎn)便的 bzcat 這個(gè)指令來讀取內(nèi)容即可!例如上面的例子中,我們可以使用 bzcat man.config.bz2 來讀取資料而不需要解開!此外,當(dāng)您要解開一個(gè)壓縮檔時(shí),這個(gè)檔案的名稱為 .bz, .bz2, .tbz, .tbz2 等等,那么就可以嘗試使用 bzip2 來解看看啦!當(dāng)然啰,也可以使用 bunzip2 這個(gè)指令來取代 bzip2 –d 啰
·
·tar:
語法:
[root @test /root ]# tar [-zxcvfpP] filename [root @test /root ]# tar -N 'yyyy/mm/dd' /path -zcvf target.tar.gz source 參數(shù)說明: -z :是否同時(shí)具有 gzip 的屬性? -x :解開一個(gè)壓縮檔案的參數(shù)指令! -t :查看 tarfile 里面的檔案! -c :建立一個(gè)壓縮檔案的參數(shù)指令 -v :壓縮的過程中顯示檔案! -f :使用檔名 -p :使用原檔案的原來屬性(屬性不會(huì)依據(jù)使用者而變) -P :可以使用絕對(duì)路徑 -N :比后面接的日期(yyyy/mm/dd)還要新的才會(huì)被打包進(jìn)新建的檔案中! --exclude FILE:在壓縮的過程中,不要將 FILE 打包! 范例: [root @test /root]# tar -cvf directory.tar directory 只將目錄整合打包成一個(gè)檔案 [root @test /root]# tar -zcvf directory.tar.gz directory 除了將目錄打包外,同時(shí)以 gzip 壓縮 [root @test /root]# tar -zcvf filename.tar.gz /home/test/* 將 /home/test/ 這個(gè)目錄下的檔案全部打包并壓縮成為一個(gè) filename.tar.gz 的檔案 [root @test /root]# tar -xvf directory.tar 解 tar 的封包,請(qǐng)注意,由于沒有 gzip (.tar 而非 .tar.gz) 的作用,所以只要使用 –xvf 即可!不需要加上 z ,否則會(huì)顯示有問題! [root @test /root]# tar -zxvf directory.tar.gz 這個(gè)就是有加上 gzip 的壓縮的結(jié)果!所以需要加上 –z 呦! [root @test /root]# tar –ztvf directory.tar.gz 這個(gè) t 可以用來查看 tar 里面的檔案資訊呢!而不需要將他解開! [root @test /root]# tar -zcvfP home.tar.gz /home 則建立起來的壓縮檔內(nèi)檔案為絕對(duì)路徑 [root @test /root]# tar -N '2002/06/25' -zcvf home.tar.gz /home 上面是說 在 /home 這個(gè)目錄中,比 2002/06/25 日還要新的檔案才會(huì)被打包進(jìn)入 home.tar.gz 這個(gè)檔案中! [root @test /root]# tar -zcvf host.tar.gz / --exclude /mnt --exclude /proc 上面是說,將根目錄的所有資料都打包進(jìn) host.tar.gz 這個(gè)檔案中,但是 /mnt 及 /proc 則不打包! [root @test /root]# tar -cvf - /home | tar -xvf - 上面的意思是『將 /home 打包之后,直接解壓縮在 /root 底下!』嘿嘿!不需要再建立一次中間檔案!不過,使用上面的語法最好使用『絕對(duì)路徑』,比較不會(huì)有問題!這個(gè)方式適合不想要建立中間檔案時(shí)!
o 這是一個(gè)多用途的壓縮指令!剛剛我們提到的 compress 與 gzip 是可以適用在一個(gè)檔案的壓縮上面,但是如果是要壓縮一個(gè)目錄呢?!這時(shí)該如何是好?!呵呵! tar 就派上用場(chǎng)了! tar 可以將整個(gè)目錄或者是規(guī)定的檔案都整合成一個(gè)檔案!例如上面的第三個(gè)范例,他可以將 /home/test 底下的檔案全部整合成一個(gè)檔案!而第一個(gè)范例中,則是將目錄整合成一個(gè)檔案!同時(shí), tar 可以配合 gzip (這個(gè) gzip 的功能已經(jīng)已經(jīng)附加上 tar 里面去了),同時(shí)整合并壓縮!呵呵!很方便吧!『 tar 用來作備份是很重要的指令! 』而由于 tar 整合過后的檔案我們通常會(huì)取名為 *.tar ,而如果還含有 gzip 的壓縮屬性,那么就取名為 *.tar.gz 啰!取這個(gè)檔名只是為了方便我們記憶這個(gè)檔案是什么屬性罷了!并沒有實(shí)際的意義在!
o 另外,需要注意的是,在使用的參數(shù)方面,有還有幾個(gè)有用的參數(shù)需要來了解一番,亦即是 -p 與 -P 這兩個(gè)!如果你曾經(jīng)在 crontab 里面下達(dá)過一些備份的指令時(shí),那么常常會(huì)收到 root 的信件,就是說,系統(tǒng)會(huì)告訴你『我將 / 的 tar 里頭的內(nèi)容拿掉了!』也就是說,原本你備份的檔案是 /home/test ,但是由于擔(dān)心未來你在解開壓縮的時(shí)候,會(huì)產(chǎn)生一些困擾,因?yàn)樵?tar 里面的檔案如果是具有『絕對(duì)路徑』的話,那么你解開的檔案將會(huì)『一定』在該路徑下也就是 /home/test,而不是絕對(duì)路徑(這里請(qǐng)用心的想一想!),這樣子的最大困擾是,萬一有人拿走了你的這個(gè)檔案,并且將該檔案在他的系統(tǒng)上面解開!萬一他的系統(tǒng)上面正巧也有 /home/test 這個(gè)目錄,哈哈!他的檔案就會(huì)『正巧』被覆蓋了!所以啰,在預(yù)設(shè)的情況中,如果是以『絕對(duì)路徑』來建立打包檔案,那么將會(huì)自動(dòng)的將 / 拿掉!這是為了剛剛說明的『安全』為前提所做的預(yù)設(shè)值。好了!但是你就是要以絕對(duì)路徑來建立打包的檔案!那么就加入 -P 這個(gè)參數(shù)吧(請(qǐng)注意!是大寫字元)!這樣就可以啦!那么 -p 是什么(小寫字元)?呵呵!那個(gè) -p 是 permission 的意思,也就是『權(quán)限』啦!使用 -p 之后,被打包的檔案將不會(huì)依據(jù)使用者的身份來改變權(quán)限喔!
o 這里還有一個(gè)值得注意的參數(shù)呦!那就是在備份的情況中很常使用的 -N 的這個(gè)參數(shù)!你可以參考一下上面的例子就可以知道啦!在這個(gè)例子當(dāng)中,相當(dāng)重要的就是那個(gè)日期啦!在備份的情況當(dāng)中,我們都希望只要備份較新的檔案就好了,為什么呢?因?yàn)榕f的檔案我們已經(jīng)有備份啰!干嘛還要再備份一次,浪費(fèi)時(shí)間也浪費(fèi)系統(tǒng)資源!這個(gè)時(shí)候此一參數(shù)就顯的相當(dāng)?shù)闹匾税?
o 在上面的例子中,最后一個(gè)例子很有趣『tar cvf - /home | tar -xvf - 』!他是直接以管線命令『 pipe 』來進(jìn)行壓縮、解壓縮的過程!在上面的例子中,我們想要『將 /home 底下的資料直接 copy 到目前所在的路徑,也就是 /root 底下來』,但是又覺得使用 cp -r 有點(diǎn)麻煩,那么就直接以這個(gè)打包的方式來打包,其中,指令里面的 - 就是表示那個(gè)被打包的檔案啦!由于我們不想要讓中間檔案存在,所以就以這一個(gè)方式來進(jìn)行復(fù)制的行為啦!
o tar 的功能相當(dāng)?shù)亩�,而由于他是�?jīng)由『打包』之后再處理的一個(gè)過程,所以常常我們會(huì)聽到 tarball 的檔案,那就是經(jīng)由 tar 打包再壓縮的檔案啦!此外, tar 也可以用在備份的儲(chǔ)存媒體上面,最常見的就是磁帶機(jī)了!假設(shè)我的磁帶機(jī)代號(hào)為 /dev/st0 ,那么我要將我的 /home 底下的資料都給他備份上去時(shí),就是使用 tar /dev/st0 /home 就可以啦!很不錯(cuò)吧!
在 Linux 當(dāng)中, gzip 已經(jīng)被整合在 tar 里面了!但是 Sun 或者其他較舊的 Unix 版本中, 當(dāng)中的 tar 并沒有整合 gzip ,所以如果你需要解壓縮的話,就需要這么做:
gzip -d testing.tar.gz
tar -xvf testing.tar
第一個(gè)步驟會(huì)將檔案解壓縮,第二個(gè)步驟才是將資料解出來!與其他壓縮程式不太一樣的是, bzip2, gzip 與 compress 在沒有加入特殊參數(shù)的時(shí)候,原先的檔案會(huì)被取代掉,但是使用 tar 則原來的與后來的檔案都會(huì)存在呦!
·cpio:
語法:
[root @test /root ]# cpio -covB > [file|device]<==備份 [root @test /root ]# cpio -icduv < [file|device]<==還原 參數(shù)說明: -o :將資料 copy 輸出到檔案或裝置上 -i :將資料自檔案或裝置 copy 出來系統(tǒng)當(dāng)中 -t :查看 cpio 建立的檔案或裝置的內(nèi)容 -c :一種較新的 portable format 方式儲(chǔ)存 -v :讓儲(chǔ)存的過程中檔案名稱可以在螢?zāi)簧巷@示 -B :讓預(yù)設(shè)的 Blocks 可以增加至 5120 bytes ,預(yù)設(shè)是 512 bytes ! 這樣的好處是可以讓大檔案的儲(chǔ)存速度加快(請(qǐng)參考 i-nodes 的觀念) -d :自動(dòng)建立目錄!由于 cpio 的內(nèi)容可能不是在同一個(gè)目錄內(nèi), 如此的話在反備份的過程會(huì)有問題! 這個(gè)時(shí)候加上 -d 的話,就可以自動(dòng)的將需要的目錄建立起來了! -u :自動(dòng)的將較新的檔案覆蓋較舊的檔案! 范例: [root @test /root]# find / -print | cpio -covB > /dev/st0 將搜尋到的檔案存到磁帶機(jī) [root @test /root]# cpio -icduv < /dev/st0 將磁帶機(jī)的資料還原回來! [root @test /root]# cpio -icdvt < /dev/st0 > /tmp/content 將磁帶機(jī)的內(nèi)容(檔名而已)轉(zhuǎn)存到 /tmp/content [root @test /root]# find / -type -f | cpio -o > /tmp/root.cpio [root @test /root]# cpio -i < /tmp/root.cpio 上面這個(gè)例子可以馬上實(shí)作看看!先輸出到 /tmp/root.cpio 這個(gè)檔案,然后再給他還原回來!
· 這個(gè) cpio 還蠻神奇的呢!他最適用于備份的時(shí)候使用的一個(gè)指令了!為什么呢?因?yàn)樗⒉幌?cp 一樣,可以直接的將檔案給他 copy 過去,例如 cp * /tmp 就可以將所在目錄的所有檔案 copy 到 /tmp 底下,在 cpio 這個(gè)指令的用法中,由于 cpio 無法直接讀取檔案,而是需要『每一個(gè)檔案或目錄的路徑連同檔名一起』才可以被記錄下來!因此, cpio 最常跟 find 這個(gè)指令一起使用了!這個(gè) cpio 好象不怎么好用呦!但是,嘿嘿!他可是備份的時(shí)候的一項(xiàng)利器呢!因?yàn)樗梢詡浞萑魏蔚臋n案,包括 /dev 底下的任何裝置檔案!呵呵!所以他可是相當(dāng)重要的呢!!您說是吧! 而由于 cpio 必需要配合其他的程式,例如 find 來建立檔名,所以, cpio 與管線命令及命令重導(dǎo)向的相關(guān)性就相當(dāng)?shù)闹匾?上面的例子剛好可以用來復(fù)習(xí)一下上一章節(jié)里面提到的內(nèi)容!加油啦!
o 備份:在備份的用法當(dāng)中,他可以直接跟輸出到檔案或者是裝置當(dāng)中,但是如前面說過的,你必須要配合 find 這個(gè)指令較好呦!那個(gè) -o 表示將檔案或目錄輸出到右邊去的意思!還記得命令重導(dǎo)向嗎?對(duì)啦!就是那個(gè)東西啰!在上面的例子中,我們將備份的資料給他 copy 到磁帶機(jī)里頭去!那個(gè)磁帶機(jī)的裝置代號(hào)就是 /dev/st0 啰!
o 還原:那么如何給他反過來解開呢?呵呵!可以直接給他下達(dá) cpio -i 就是 input 就對(duì)啦!例如上頭的例子啰!這個(gè)指令可以多看看呢
- Linux系統(tǒng)下TOP命令使用與分析詳解
- 安裝Linux我們需要改變20件事情
- 使用Linux系統(tǒng)架設(shè)VSFTP服務(wù)器
- Linux系統(tǒng)上架設(shè)POP3服務(wù)器
- Linux中“Networking Disabled”的解決方法(解決Ubuntu等系統(tǒng)無法上網(wǎng))
- ubuntu系統(tǒng)清理磁盤教程
- linux下搭建pxe自動(dòng)化安裝環(huán)境
- BIOS不支持導(dǎo)致Linux內(nèi)核耗電增加
- Debian GNU/Linux系統(tǒng)卡片
- Linux操作系統(tǒng)開機(jī)自行啟動(dòng)項(xiàng)目詳細(xì)解析
- Linux菜鳥入門級(jí)命令大全
- Linux操作系統(tǒng)中讀取目錄文件信息的過程
- 相關(guān)鏈接:
- 教程說明:
Linux教程-Linux環(huán)境中的文件壓縮與打包
。