【轉】linux下cpio命令使用


轉自:http://www.51testing.com/html/32/498132-816949.html

 

功能說明:備份文件。

 

補充說明:cpio是用來建立,還原備份檔的工具程序,它可以加入,解開cpio,img或tra備份檔內的文件。

 

cpio文件的類型判斷:

[root@localhost test]# file test.cpio
test.cpio: ASCII cpio archive (SVR4 with no CRC) 

 

cpio實例講解

1、常用操作模式

(1)備份:cpio -ocvB    > [ file | device ]
(2)還原:cpio -ivcdu   >
[ file | device ]
(3)查看:cpio -ivct      >[ file | device ]

2、相關例子

1)cpio-out模式

(1)找出當前目錄下的所有文件,然后將它們打包進一個cpio壓縮包文件
find . -depth | cpio -ocvB > backup.cpio 或  find .-depth-print | cpio -ocvB > backup.cpio
注意:cpio 建立起來的歸檔文件包括文件頭和文件數據兩部分。文件頭包含了對應文件的信息。如文件的 UID,GID,連接數以及文件大小等。其好處是可以保留硬連接,在恢復時默認情況下保留時間戳,無文件名稱長度的限制

(2)將當前目錄下名為inittab文件加入initrd.cpio包中
命令1:find . -name inittab -depth | cpio -ovcB -A -F initrd.cpio 
命令2:find . -name inittab -depth | cpio -ovcB -A -O initrd.cpio
命令3:find . -name inittab -depth | cpio -ovcB -A --quiet  -O  initrd.cpio(--quit:表示不顯示復制塊)

 

cpio --absolute-filenames -vtc < boot.cpio(不忽略文件列表清單的文件名最前面的“/")
cpio --no-absolute-filenames -vtc < boot.cpio(默認是忽略文件列表清單的文件中最前面的

 

(2)從cpio壓縮包中的解壓出文件
cpio --absolute-filenames -icvu < test.cpio(解壓到原始位置,解壓出來的每個文件的時間屬性改為當前時間)
cpio --absolute-filenames -icvum < test.cpio(解壓到原始位置,同時不改變解壓出來的每個文件的時間屬性)

 

cpio  -icvu < test.cpio(解壓到當前目錄下)或者cpio  -icvum < test.cpio

 

(3)在解包cpio時,對解包出來的文件進行交互的更名
cpio -icvdu -r < grub.cpio

 

(4)將cpio包中的文件解壓並輸入標准輸出
 cpio -icvu --to-stdout < grub.cpio
注意:既然解壓到標准輸出,所以就不能使用-d參數了

 

3)cpio-out模式

(1)復制文件並更改文件的屬主與屬組
 find . -depth| cpio -R ruanxi:ruanxi -pL  /backup/

 

4)分析系統目錄/boot下的initrd-2.6.30.9.img文件
[root@Server tmp]# file /boot/initrd-2.6.30.9.img
/boot/initrd-2.6.30.9.img: gzip compressed data, from Unix, last modified: Fri Nov 13 22:12:38 2009, max compression
#由上面可知道,initrd-2.6.30.9.img它是一個gzip文件
-------------------------------------------------------------------
[root@Server tmp]# cp /boot/initrd-2.6.30.9.img  ./initrd.img.gz
[root@Server tmp]# gzip -d initrd.img.gz
#通過gzip指令解壓出文件
-------------------------------------------------------------------
[root@Server tmp]# file initrd.img
initrd.img: ASCII cpio archive (SVR4 with no CRC)
#可知解壓出的文件是一個cpio壓縮包
[root@Server tmp]# cpio -ivcdu < initrd.img
#最后再使用cpio指令解包


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM