cpio 命令的用法

2021-05-23 03:08:37 字數 2822 閱讀 9725

一、cpio

1.檔案或目錄打包。

打包有如下多種情況:

a)含子目錄打包:

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

本人在unix系統業務使用(特別 是資料管理與備份)中,經過一番研究、整理後,充分利用unix系統本身的命令tar、cpio和compress等來做到打包和壓縮,使之充當類似 dos下的壓縮軟體,同時在unix系統中亦具有通用性。

在unix系統中,是先通過cpio或tar將眾多的檔案打包成乙個檔案庫 後,再用compress將檔案庫壓縮來達到目的的。下面分別以cpio和tar來說明使用的方法和步驟。

一、cpio

cpio -id

1.檔案或目錄打包。

打包有如下多種情況:

a)含子目錄打包:

find tmp/geexbox -print|cpio -o > /tmp/geexbox1.cpio

將/usr /lib目錄下的檔案與子目錄打包成乙個檔案庫為/u0/temp1.cpio。

若通過-o選項來打包整個目錄下的所有檔案與子目 錄,常先利用find目錄名-print來找出所有檔案與子目錄的名稱,通過管道「|」傳給cpio打包。

b)不含子目錄的打包:

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

將/usr/lib目錄下的檔案(不含子目錄下的檔案)打 包成乙個檔案庫為/u0/temp1.cpio。

c)特定檔案打包:

可利用文字搜尋命令grep與管道配合,可 以排除或選擇特定型別的檔案傳給cpio打包。如:ls /usr/lib/*.c|cpio -o〉/u0/temp1.cpio

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

意思均為找出/usr/lib目錄 下以.c結尾的檔案予以打包。

又如:ls /usr/lib|grep abcd|cpio -o〉/u0/temp1.cpio ,其意為找出/usr/lib目錄下檔名中含有abcd字元的檔案予以打包。

ls /usr/lib|grep -v abcd|cpio -o〉/u0/temp1.cpio,其意為找出/usr/lib目錄下檔名中不含 abcd 字元的檔案予以打包。-v選項在grep命令中的意思是排除含有字串的行列。

如此,可充分利用unix的管道和一些命令的強大功能 來實現檔案的打包。

2.壓縮:

檔案打包完成後,即可用unix中的compress命令(/usr/bin下) 壓縮打包檔案。對一般的文字檔案,壓縮率較高,可達81%。

compress /u0/temp1.cpio則將檔案庫/u0/temp1.cpio壓縮為/u0/temp1.cpio.z(自動新增.z並刪除/u0 /temp1.cpio )。

3.解壓:

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

4.解包展開:

將按原目錄結構解 包展開到當前所在目錄下。若以相對路徑打包的,當解包展開時,也是以相對路徑存放展開的檔案資料;若以絕對路徑打包的,當解包展開時,也是以絕對路徑存放 展開的檔案資料。因此注意若為相對路徑,應先進入相應的目錄下再展開。

cd /u1

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

若加u選項,如cpio -iud〈/u0/temp1.cpio則檔案若存在將被覆蓋,即強制覆蓋。

cpio -id〈/u0/temp1.cpio *.c 則展開其中的*.c檔案,類似於dos系統中的pkzip軟體中pkunzip -d temp1.zip解包功能。

5.顯示:

cpio -it〈/u0/temp1.cpio [*.c] 顯示檔案庫內的檔名稱,類似於dos系統中的pkzip軟體中pkunzip -vbnm temp1.zip功能。

二、tar

1.檔案或目錄打包:

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等檔案(不含子目錄)打包。

注意: 如果指定檔案如*.c *.f或*.*,則打包時均不含子目錄。如果指定為.或*,則含子目錄。

2.壓縮:

同 上:compress /u0/temp2.tar壓縮為/u0/temp2.tar.z

3.解壓:

uncompress /u0/temp2.tar.z則還原為/u0/temp2.tar。

4.解包展開:

tar -xvf /u0/temp2.tar

若以相對路徑打包的,解包時,以相對路徑存放展開的檔案資料;若以絕對路徑打包的,解 包時,以絕對路徑存放展開的檔案資料。

若指定展開的檔名,須注意檔案的目錄路徑。

5.顯示:

tar -tvf /u0/temp2.tar 顯示檔案庫內的檔名稱。當指定檔名時,亦須注意檔案的路徑。

相對來說這兩個命 令各有優缺點。

1)tar速度比cpio慢,且不能跨越兩份儲存**,但檔案格式幾乎在所有的unix系統中都能通用,且使用簡便。

2)cpio則由於可通過管道功能,使得其打包時的檔案選擇、排除功能非常強,且能跨越多份**,並能備份特殊的系統檔案。

另外, 壓縮命令compress比dos下的pkzip的壓縮率要低些。經測試,在乙個目錄下527個文字檔案共15.7mb,在unix打包後用 compress壓縮,大小為 2.1mb;相同的檔案拷到dos系統用pkzip壓縮,則大小為1.4mb。

cpio命令用法

cpio命令 利用cpio 可將檔案或目錄從檔案庫獲取出來或將雜湊檔案拷貝到檔案庫。cpio 的指令格式 cpio i bcdmrtuv patterns cpio o abcv cpio p adlmuv directory cpio 常配合shell使用。o常用標準輸入裝置讀取要copy 的檔名...

cpio 命令解釋

解壓cpio檔案 cpio idmv filename.cpio 同樣可以解壓img檔案 cpio idmv filename.img cpio 備份命令 備份 cpio covb file device 將資料備份到檔案或裝置上 還原 cpio icduv file device 將資料還原到系統...

CPIO命令詳解

cpio 可以從 cpio 或 tar 格式的歸檔包中存入和讀取檔案,歸檔包是一種包含其他檔案和有關資訊的檔案。有關資訊包括 檔名,屬主,時標 timestamp 和訪問許可權。歸檔包可以是磁碟上的 其他檔案,也可以是磁帶或管道。cpio 有三種操作模式 在copy out模式中,cpio 把檔案複...