cpio
用来建立、还原备份档的工具程序
补充说明
cpio命令 主要是用来建立或者还原备份档的工具程序,cpio命令可以复制文件到归档包中,或者从归档包中复制文件。
语法
1 | cpio(选项) |
选项
1 | -0或--null:接受新增列控制字符,通常配合find指令的“-print0”参数使用; |
实例
将/etc
下的所有普通文件都备份到/opt/etc.cpio
,使用以下命令:
1 | find /etc –type f | cpio –ocvB >/opt/etc.cpio |
将系统上所有资料备份到磁带机内,使用以下命令:
1 | find / -print | cpio -covB > /dev/st0 |
这里的/dev/st0
是磁带的设备名,代表SCSI磁带机。
查看上例磁带机上备份的文件,使用以下命令:
1 | cpio -icdvt < /dev/st0 > /tmp/st_content |
有时可能因为备份的文件过多,一个屏幕无法显示完毕,此时我们利用下面命令,让磁带机的文件信息输出到文件。
将示例1中的备份包还原到相应的位置,如果有相同文件进行覆盖,使用以下命令:
1 | cpio –icduv < /opt/etc.cpio |
注意,cpio恢复的路径,如果cpio在打包备份的时候用的是绝对路径,那么在恢复的时候会自动恢复到这些绝对路径下,本例就会将备份文件全部还原到/etc路径下对应的目录中。同理,如果在打包备份用的是相对路径,还原时也将恢复到相对路径下。
通过上面的示例,可以看出,cpio无法直接读取文件,它需要每个文件或者目录的完整路径名才能识别读取,而find命令的输出刚好做到了这点,因此,cpio命令一般和find命令配合使用。其实,上面的示例我们已经看到了它们的组合用法。