cpio [选项] > 文件名或者设备名
cpio [选项] < 文件名或者设备名
功能
cpio
命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,它可以解压以 .cpio
或者 .tar
结尾的文件。
描述
选项说明:详细选项说明参看下表, 包括:选项、含义
-
-o
将文件拷贝打包成文件或者将文件输出到设备上。 -
-i
将打包文件解压或者将设备上的备份还原到系统。 -
-t
查看cpio
打包的文件内容或者输出到设备上的文件内容。 -
-v
显示打包过程中的文件名称。 -
-d
在cpio
还原文件的过程中,自动的建立相应的目录。 -
-c
一种较新的存储方式。 -
-B
让默认的Blocks可以增大到5120 bytes
,默认Blocks为512 bytes
,这样做的好处是可以加快存取速度。
注意,
-
cpio
恢复的路径,如果cpio
在打包备份的时候用的是绝对路径,那么在恢复的时候会自动恢复到这些绝对路径下,同理,如果在打包备份用的是相对路径,还原时也将恢复到相对路径下。 -
cpio
无法直接读取文件,它需要每个文件或者目录的完整路径名才能识别读取,而find
命令的输出刚好做到了这点,因此,cpio
命令一般和find
命令配合使用。 -
cpio
恢复的时候不会自动覆盖同名文件。 -
不会创建目录而是直接解压到当前文件夹。
举例
将 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
中的内容了。
网友评论