linux下cpio使用詳解

2021-08-29 05:03:48 字數 2622 閱讀 4515

解壓cpio檔案

cpio -idmv < filename.cpio

同樣可以解壓img檔案:

cpio -idmv < filename.img

cpio 備份命令

備份:cpio -covb > [file|device] 將資料備份到檔案或裝置上

還原:cpio -icduv < [file|device} 將資料還原到系統中

常用引數:

-o   :將資料copy到檔案或裝置上

-i    :將資料從檔案或裝置上還原到系統中

-t    :檢視cpio建立的檔案或裝置內容

-c   :一種比較新的portable format方式儲存

-v   :在螢幕上顯示備份過程中的檔名

-b   :讓預設的blocks可以增加到5120bytes,預設是512bytes,這樣可以使備份速度加快

-d   :自動建立目錄,這樣還原時才不會出現找不到路徑的問題

-u   :更新,用較新的檔案覆蓋舊的檔案

cpio常與find 配合使用

一、cpio 

1.檔案或目錄打包。 

打包有如下多種情況: 

a)含子目錄打包: 

find /usr/local/hbchen/ -print|cpio -o > /tmp/hbchen1.cpio 

將/usr/local/hbchen目錄下的檔案與子目錄打包成乙個檔案庫為/tmp/hbchen1.cpio。 

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

b)不含子目錄的打包:

ls /usr/local/hbchen |cpio -o > /tmp/hbchen3.cpio

將/usr/local/hbchen目錄下的檔案(不含子目錄下的檔案)打包成乙個檔案庫為/tmp/hbchen3.cpio。 

c)特定檔案打包:

可利用文字搜尋命令grep與管道配合,可以排除或選擇特定型別的檔案傳給cpio打包。

如: ls /usr/local/hbchen/*.txt |cpio -o >/tmp/hbchen0.cpio

或ls /usr/local/hbchen |grep '\*.txt$' |cpio -o >/tmp/hbchen6.cpio

find /usr/local/hbchen目錄下以.txt結尾的檔案予以打包。 

又如:ls /usr/local/hbchen grep 1 cpio -o >/tmp/hbchen9.cpio ,其意為找出/usr/local/hbchen目錄下檔名中含有1字元的檔案予以打包。 

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

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

2.壓縮: 

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

compress  compress /tmp/hbchen1.cpio則將檔案庫compress /tmp/hbchen1.cpio壓縮為compress /tmp/hbchen1.cpio.z(自動添

加.z並刪除/tmp/hbchen1.cpio )。 

3.解壓: 

uncompress  compress /tmp/hbchen1.cpio.z則自動還原為/tmp/hbchen1.cpio。 

4.解包展開: 

將按原目錄結構解包展開到當前所在目錄下。若以相對路徑打包的,當解包展開時,也是以相

對路徑存放展開的檔案資料;若以絕對路徑打包的,當解包展開時,也是以絕對路徑存放展開的文

件資料。因此注意若為相對路徑,應先進入相應的目錄下再展開。 

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

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

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

5.顯示: 

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

--對比性

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

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

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

Linux系統下cpio命令詳解

cpio主要是解壓或者將檔案壓縮到指定檔案中即copy in和copy out模式。引數引數說明 icopy in模式,解壓檔案 ocopy out模式,即壓縮檔案 d自動生成目錄 v列印處理的檔案 m保留檔案修改的時間 root localhost casper file initrd.lz in...

CPIO命令詳解

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

linux下dd和cpio命令

每天筆記都不能當天完成,我想這是件很失敗的事情。我得仔細分析下自己的原因,好在下次能夠當天的筆記當天完成。dd這個命令不得不說它實在是很強大的,我也在網上參考了一些文章,不過都不是詳細,還好相老師講的還是很詳細的,大師就是大師啊。dd是linux unix 下的乙個非常有用的命令,作用是用指定大小的...