cpio 命令
语法:
cpio-ocvB>[file|device] //备份
cpio-icdvu<[file|device] //还原
cpio-icvt<[file|device] //查看
功能:cpio 命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,它可以解压以“.cpio”或者“.tar”结尾的文件。cpio 命令选项及其功能见下表。
表cpio 命令的各个选项及其功能
选项 功能
-B 让默认的 Blocks 可以增大到 5120B, 默认 Blocks 为 512B,这样做的好处是 可以加快存取速度
-c 一种较新的 portable 格式的储存方式
-d 在 cpio 还原文件的过程中,自动地建立 相应的目录。由于 cpio 的内容可能不 是在同一个目录内,如此在还原的过程中 会有问题,加上-d 可以解决问题
-i 将打包文件解压或者将设备上的备份还 原到系统中
-o 读标准输入以获取路径名列表,并且将这 些文件连同路径名和状态信息复制到标 准输出上
-t 查看 cpio 打包的文件内容或者输出到设 备上的文件内容
-u 自动地用较新的文件覆盖较旧的文件
-v 详细列出已处理的文件
示例如下:
#find ./home -print Icpio -ov >home.cpio
//将 home 目录备份
#cpio -idv </root/home.cpio
//要恢复文件的时候
#cpio -tv <home.cpio
//查看 home.cpio 文件
#find . -depth I cpio -ocvB>backup.cpio
//找出当前目录下的所有文件,然后将它们打包进一个 cpio 压缩包文件。注意:cpio 建立起来的归档文件包括文件头和文件数据两部分。文件头包含了对应文件的信息。如文件的 UID、GID、连接数以及文件大小等。其好处是可以保留硬链接,在恢复时默认情况下保留时间戳,无文件名称长度的限制
将当前目录下名为 inittab 文件加入 initrd. cpio 包中。
#find .-name inittab -depth I cpio-ovcB -A -F initrd.cpio
#find .-name inittab -depth I cpio -ovcB -A -O initrd.cpio
#find .-name inittab -depth I cpio -ovcB -A --quiet -O initrd.cpio(--quit:表示不显示复制块)
从 cpio 压缩包中解压出文件,示例如下:
#cpio --absolute-filenames -icvu<test.cpio
//解压到原始位置,解压出来的每个文件的时间属性改为当前时间
#cpio --absolute-filenames -icvum<test.cpio
//解压到原始位置,同时不改变解压出来的每个文件的时间属性
#cpio -icvu<test.cpio //解压到当前目录下
#cpio -icvum<test.cpio //解压到当前目录下
#cpio -icvdu -r<grub.cpio
//在解包 cpio 时,对解包出来的文件进行交互式地更名
#cpio-icvu --to-stdout<grub.cpio
//将 cpio 包中的文件解压并输入标准输出。
注意:既然解压到标准输出,所以就不能使
用-d 参数了
#cpio --absolute-filenames -vtc<boot.cpio
//不忽略文件列表清单的文件名最前面的"/"
#cpio--no-absolute-filenames -vto<boot.cpio
//默认是忽略文件列表清单的文件中最前面的"/"