http://number189.blog.fc2blog.us/blog-entry-12.html
cpio [選項] > 文件名或者設備名
cpio [選項] < 文件名或者設備名
[功能]
cpio命令是通過重定向的方式將文件進行打包備份,還原恢復的工具,它可以解壓以“.cpio”或者“.tar”結尾的文件。
[描述]
選項說明:詳細選項說明參看下表
選項 含義
-o 將文件拷貝打包成文件或者將文件輸出到設備上。
-i 將打包文件解壓或者將設備上的備份還原到系統。
-t 查看cpio打包的文件內容或者輸出到設備上的文件內容。
-v 顯示打包過程中的文件名稱。
-d 在cpio還原文件的過程中,自動的建立相應的目錄。
-c 一種較新的存儲方式。
-B 讓默認的Blocks可以增大到5120 bytes,默認Blocks為512 bytes,這樣做的好處是可以加快存取速度。
註意,
1)cpio恢復的路徑,如果cpio在打包備份的時候用的是絕對路徑,那麽在恢復的時候會自動恢復到這些絕對路徑下,同理,如果在打包備份用的是相對路徑,還原時也將恢復到相對路徑下。
2)cpio無法直接讀取文件,它需要每個文件或者目錄的完整路徑名才能識別讀取,而find命令的輸出剛好做到了這點,因此,cpio命令一般和find命令配合使用。
3)cpio恢復的時候不會自動覆蓋同名文件。
4)不會創建目錄而是直接解壓到當前文件夾。
[舉例]
*將etc目錄備份:
find ./etc -print |cpio -ov >etc.cpio
*要恢復文件的時候
#cpio -idv
*只是查看etc.cpio文件,可以使用
# cpio -tv
輸入之後,輸出如下:
drwxrwxr-x 4 quiethea quiethea 0 Nov 4 17:14 etc
-rw-rw-r-- 1 quiethea quiethea 0 Nov 4 17:07 etc/2
drwxrwxr-x 2 quiethea quiethea 0 Nov 4 17:07 etc/11
-rw-rw-r-- 1 quiethea quiethea 0 Nov 4 17:07 etc/11/11
-rw-rw-r-- 1 quiethea quiethea 0 Nov 4 17:07 etc/4
drwxrwxr-x 2 quiethea quiethea 0 Nov 4 17:07 etc/22
-rw-rw-r-- 1 quiethea quiethea 0 Nov 4 17:07 etc/3
-rw-rw-r-- 1 quiethea quiethea 0 Nov 4 17:07 etc/1
-rw-rw-r-- 1 quiethea quiethea 0 Nov 4 17:07 etc/5
這樣顯示得是將要恢復得文件得名稱。
[其它]
現在,內核剛剛啟動的時候,會事先掛一個initrd內存文件系統,這個initrd文件系統鏡像可以由cpio制作。參見內核源碼文檔initrd.txt.
*例如我有一個非常簡單的文件系統rootfs.制作鏡像方法如下:
$cd rootfs
$find . | cpio -c -o -v |gzip -9 -n >../ramdisk.img
這樣,父目錄下會生成一個ramdisk.img壓縮文件系統鏡像。
*將鏡像解壓恢復成文件系統的命令:
$mkdir rootfs
$cp ramdisk.img rootfs
$cd rootfs
$mv ramdisk.img ramdisk.img.gz
$gunzip ramdisk.img.gz
$cpio -i
$rm ramdisk.img
這樣,當前目錄下就是原來rootfs中的內容了。
限會員,要發表迴響,請先登入