linux中cpio的用法,【转】linux下cpio命令使用(示例代码)

功能说明:备份文件。

补充说明:cpio是用来建立,还原备份档的工具程序,它可以加入,解开cpio,img或tra备份档内的文件。

cpio文件的类型判断:

[[email protected] test]# filetest.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文件[[email protected] 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文件

-------------------------------------------------------------------

[[email protected] tmp]# cp /boot/initrd-2.6.30.9.img  ./initrd.img.gz

[[email protected] tmp]# gzip -d initrd.img.gz

#通过gzip指令解压出文件

-------------------------------------------------------------------

[[email protected] tmp]# file initrd.img

initrd.img: ASCII cpio archive (SVR4 with no CRC)

#可知解压出的文件是一个cpio压缩包

[[email protected] tmp]# cpio -ivcdu < initrd.img

#最后再使用cpio指令解包

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
cpio命令使用 利用cpio 可将文件或目录从文件库获取出来或将数据拷贝到文件库。 cpio 的指令格式: cpio –i[bcdmrtuv] [patterns] cpio –o [abcv] cpio –p [adlmuv][directory] 说明:cpio 共有三种基本模式,-o即copy-out 模式,将一组文件copy到一个文件库,-i 即copy-in 模式,读取文件库,并将其展开在当前目录,-p 能从某个目录读取所有文件(包括子目录到另一个目录),且不以archive(归档)的方式存放。 cpio 常配合shell使用。-o常用标准输入设备读取要copy 的文件名称,并将copy成的archive file 通过标准输出设备输出。一般利用输入/输出重定向或管道的原理,达到真正复制的功能。 (一)利用cpio备份: [例1] $ find work –print | cpio –ocdv > /dev/rfd0135ds18 将work目录下的文件备份到软盘上。-o表示输出模式,-c生成一个带有头信息的文件。 -d表示按需要生成目录,-v表示命令执行时不断显示信息。用“>”把结果定向到软盘。 [例2] $ ls |cpio –o >/usr/linfs/old1 将当前目录下的所有文件复制成old1 archive file [例3] $ ls *.c | cpio –o>oldc 复制工作目录的所有的c程序. [例4] $ ls| cpio –p /usr/linfs/tempdir 复制当前工作目录下的文件到/usr/linfs/tempdir 目录,不生成archive file . (二)利用cpio 复原: [例5] $ cpio –icdv < /dev/rfd0135ds18 将软盘的文件复原。-i告诉cpio把文件作为它的输入,-d按需要生成目录,-v显示执行时的所有信息,-c具有头文件格式。 [例6] $ cpio –icdv "*stat.wp" < /dev/rfd0135ds18 仅复原*stat.wp的文件 [例7] $ cpio –i </usr/linfs/old1 *.f 仅复原*.f 文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值