文件的备份:cpio

和tar命令类似,用于对文件进行归档备份处理,相对于tar,cpio对数据的压缩更有效,因为它是为备份任何文件集而设计的。

cpio:备份文件为归档或从已经存在的归档中提取文件,一般用于个人文件的备份。

语法:
cpio [主选项] [选项] [文件名]

cpio可以用来建立,还原备份的文档,它可以加入,解开cpio或tar备份的归档文件,cpio包括3种运行模式。

copy-ou: cpio把要备份的文件复制到归档包中。
copy-in:cpio从归档包中抽取文件,或者列出归档包里的内容。
Pass-through:合并copy-out和copy-in命令的功能。从一个目录向另一个目录或从一个文件系统向另一个文件系统复制文件。

主参数:

-o 或 --create 执行copy-out模式,建立备份档
-i 或 --extract执行copy-in模式,还原备份档。
-p 或 --pass-through 执行 pass-through模式,略过备份步骤,直接将文件复制到目的目录 。
-t 或 --list 将输入的内容呈现出来。
可选参数
-0或 --null  接收新增列控制字符,通常配合find指令的-print选项使用。
-a或 --reset-access-time 重新设置文件的存取时间。
-A或 --append 附加到已经存在的备份档中,
-B   将输入/输出的区块大小改成5210字节。
-c   使用旧的ASCII备份格式。
-C <区块大小>或 --io-size=<块区大小>设置输入/输出的区块大小,单位是byte
-d 或 --make-directories 恢复目录时,-d用来创建子目录,而tar命令则自动完成创建子目录的工作。
-F <备份档>或 --file=<备份档> 指定备份档的名称。
-V 或--dot 执行指令时,在每个文件的执行程序前面加上"."号。
-v 详细显示指令的执行过程。
例:
一、把pic目录下的所有文件并归档到 a.cpio中
find pic | cpio -oVB > a.cpio

二、把a.cpio解压到abc目录中。
root@CentOS aa$ mkdir abc
root@CentOS aa$ cd abc
root@CentOS~aa$ cpio -i < /home/linux/ex/a.cpio

三、显示cpio文档的内容,而不提取其内容。
cpio -vt < a.cpio
# v显示详细信息,t显示其内容,但不解压。

四、压缩cpio归档文件
经常看到xxxx.tar.gz的压缩文件,此类文件利用 gzip压缩的,也有xxx.cpio.gz的压缩文件也是由gzip进行压缩的,gzip不能对目录文件进行压缩,必须先用tar或cpio把多个目录和文件归档,之后再进行压缩。

root@CentOS aa$ gzip a.cpio  #建立压缩
root@CentOS aa$ ls
abc  a.cpio.gz    

五、将当前目录下的pic目录树,备份到backup目录中

mkdir backup  #建立这个目录

find pic | cpio -vpd backup
#v 详细信息,p pass-through模式,直接复制,d用于创建子目录

注:
1、cpio产生归档文件的内容列表一般是ls,find命令的执行结果作为管道输入。
2、cpio的参数必须指定一个主选项(o,i,p,t),告诉cpio具体做什么。