綠(lǜ)色資源網:您(nín)身邊最放心的(de)安全下載站! 最新軟件|熱(rè)門排(pái)行|軟件分類|軟件(jiàn)專題|廠商大全

綠(lǜ)色資源網

技術(shù)教程
您(nín)的位(wèi)置:首(shǒu)頁服(fú)務器類Linux服務器 → Linux下(xià)打包(bāo)命令的使用

Linux下打包命令的使用

我要評(píng)論(lùn) 2009/04/14 01:55:35 來源:綠色資源網 編輯:編輯(jí)整理 [ ] 評(píng)論:0 點擊:498次

  本人在Unix係統業務使用(yòng)(特別是數據管(guǎn)理與(yǔ)備份)中(zhōng),經過一番研究、整理後,充(chōng)分(fèn)利(lì)用Unix係(xì)統(tǒng)本身的命令tar、cpio和compress等來做(zuò)到打包和壓縮,使之充當(dāng)類似(sì)DOS下的壓縮軟件(jiàn),同時在Unix係統中(zhōng)亦具有通用性。

  在Unix係統中,是先通過cpio或tar將眾多的(de)文件打包(bāo)成一(yī)個文件庫後,再用compress將文(wén)件庫壓縮來達到目的的。下麵分別以(yǐ)cpio和(hé)tar來說明使用的方法和(hé)步(bù)驟(zhòu)。

  一、cpio

  1.文件或目錄(lù)打包(bāo)。

  打包有如下(xià)多種(zhǒng)情況:

  A)含子目錄打包:

  find /usr/lib -print|cpio -o〉/u0/temp1.cpio

  將(jiāng)/usr /lib目錄下的文(wén)件與子目錄打包成一個(gè)文(wén)件庫(kù)為/u0/temp1.cpio。

  若(ruò)通過-o選(xuǎn)項來打包整個目(mù)錄下的所有文件(jiàn)與子(zǐ)目錄,常先利用find目錄名-print來(lái)找出所有文件與子目錄的名稱,通過管道“|”傳給cpio打(dǎ)包(bāo)。

  B)不(bú)含子(zǐ)目錄的打包:

  ls /usr/lib|cpio -o〉/u0/temp1.cpio

  將/usr/lib目錄下的文件(不含(hán)子目錄下的(de)文件)打包(bāo)成一個文件庫為/u0/temp1.cpio。

  C)特定(dìng)文件打包:

  可利用文本搜(sōu)索命令grep與管(guǎn)道(dào)配合,可(kě)以(yǐ)排除或選擇特(tè)定類型的(de)文件傳給(gěi)cpio打(dǎ)包。如:ls /usr/lib/*.c|cpio -o〉/u0/temp1.cpio

  或(huò)ls /usr/lib|grep ′.c$′|cpio -o〉/u0/temp1.cpio

  意思均(jun1)為找(zhǎo)出(chū)/usr/lib目錄下以(yǐ).c結尾(wěi)的文件予以打包。

  又(yòu)如(rú):ls /usr/lib|grep abcd|cpio -o〉/u0/temp1.cpio ,其意為找出/usr/lib目錄下文件名中含(hán)有abcd字符的文件予以打包。

  ls /usr/lib|grep -v abcd|cpio -o〉/u0/temp1.cpio,其意為(wéi)找出/usr/lib目錄下(xià)文件名(míng)中不含 abcd 字符的文件(jiàn)予以打包。-v選項在grep命令中的意思是排除含(hán)有字(zì)符串的行列。

  如此,可(kě)充分利用Unix的管道和一些命令的強大功能來(lái)實現文件的打包。

  2.壓(yā)縮:

  文件(jiàn)打(dǎ)包(bāo)完成後,即可用Unix中的compress命令(/usr/bin下(xià))壓縮(suō)打包文件。對一(yī)般(bān)的(de)文本文件,壓縮率(lǜ)較高(gāo),可達81%。

  compress /u0/temp1.cpio則將文件庫/u0/temp1.cpio壓縮為/u0/temp1.cpio.Z(自動添加.Z並刪(shān)除/u0/temp1.cpio )。

  3.解壓(yā):

  uncompress /u0/temp1.cpio.Z則自動還原為/u0/temp1.cpio。

  4.解包展開:

  將按原目錄結構解包展開(kāi)到(dào)當前(qián)所在目錄(lù)下。若以相對路徑打(dǎ)包的,當解包展(zhǎn)開時,也是以相對(duì)路徑存放展開(kāi)的文件(jiàn)數據;若以絕對路徑打包的,當解包(bāo)展開時,也(yě)是以絕對路徑存放展開的(de)文件數據。因(yīn)此注意若(ruò)為相對(duì)路徑,應(yīng)先進入相應的目錄下再展(zhǎn)開(kāi)。

   cd /u1

   cpio -id〈/u0/tmp1.cpio則將/u0/temp1.cpio解(jiě)壓(yā)到/u1下(這裏假設temp1.cpio以(yǐ)相對路徑壓縮)。

  若加u選項(xiàng),如cpio -iud〈/u0/temp1.cpio則文件若存在將被覆蓋,即強(qiáng)製(zhì)覆蓋。

  cpio -id〈/u0/temp1.cpio *.c 則展開其(qí)中(zhōng)的*.c文件,類似(sì)於DOS係統中的Pkzip軟件中Pkunzip -d temp1.zip解包功能。

  5.顯示:

  cpio -it〈/u0/temp1.cpio [*.c] 顯(xiǎn)示文件庫內(nèi)的文件名稱,類(lèi)似於DOS係統中(zhōng)的Pkzip軟件中Pkunzip -vbnm temp1.zip功能(néng)。

  二、tar

  1.文件或目錄打(dǎ)包:

  tar -cvf /u0/temp2.tar /usr/lib

  將/usr/lib目錄下的文件與子目錄打包成一個文件庫為/u0/temp2.tar。

  tar -cvf /u0/temp2.tar /usr/lib *.c *.f

  將/usr/lib目錄下的*.c *.f等文件(不含(hán)子(zǐ)目錄(lù))打包。

  注(zhù)意:如(rú)果指定文件如*.c *.f或*.*,則(zé)打包時均不(bú)含(hán)子目錄。如果指定為.或*,則含子目錄。

  2.壓(yā)縮(suō):

  同(tóng)上(shàng):compress /u0/temp2.tar壓(yā)縮(suō)為/u0/temp2.tar.Z

  3.解壓:

  uncompress /u0/temp2.tar.Z則(zé)還原(yuán)為/u0/temp2.tar。

  4.解包展開:

  tar -xvf /u0/temp2.tar

  若以相(xiàng)對路徑打包的,解包時(shí),以相對路徑存(cún)放(fàng)展開的文件數據;若以(yǐ)絕對路徑打包的,解包時,以絕對路(lù)徑(jìng)存放展開的文(wén)件數(shù)據。

  若指定展開的文件名,須注意(yì)文件的(de)目錄路徑。

  5.顯(xiǎn)示:

  tar -tvf /u0/temp2.tar 顯示(shì)文件庫內的文(wén)件名稱。當指定文件名時,亦須(xū)注意文件的路徑。

  相對(duì)來說這(zhè)兩個(gè)命令各有優缺點(diǎn)。

  1)tar速度比(bǐ)cpio慢,且不能跨(kuà)越兩份存儲媒體,但文件格式幾乎在所有的(de)Unix係統中都能(néng)通用,且使用簡便。

  2)cpio則由於可通過管道功能,使得其打包時的文(wén)件選擇(zé)、排除功(gōng)能非常(cháng)強,且能跨越多份(fèn)媒體(tǐ),並能備份特(tè)殊的係統文件。

  另外,壓縮(suō)命令compress比DOS下的Pkzip的壓縮率要低些。經測試(shì),在一個目錄下527個(gè)文本文件共15.7MB,在(zài)Unix打包後用compress壓縮,大小(xiǎo)為 2.1MB;相同的(de)文件(jiàn)拷到DOS係統用Pkzip壓縮,則大小為1.4MB。

關鍵詞:Linux

閱讀本文後您有什(shí)麽感想(xiǎng)? 已(yǐ)有 人給(gěi)出評價!

  • 3 歡迎喜歡
  • 4 白癡
  • 4 拜托(tuō)
  • 4 哇
  • 15 加油
  • 39 鄙視