Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5634445
  • 博文数量: 922
  • 博客积分: 19333
  • 博客等级: 上将
  • 技术积分: 11226
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-27 14:33
文章分类

全部博文(922)

文章存档

2023年(1)

2020年(2)

2019年(1)

2017年(1)

2016年(3)

2015年(10)

2014年(17)

2013年(49)

2012年(291)

2011年(266)

2010年(95)

2009年(54)

2008年(132)

分类: LINUX

2011-06-09 21:05:58

cpio [选项] > 文件名或者设备名 

cpio [选项] < 文件名或者设备名 


[功能] 

cpio命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,它可以解压以“.cpio”或者“.tar”结尾的文件。 


[描述] 

选项说明:详细选项说明参看下表 

选项 含义 

-o 将文件拷贝打包成文件或者将文件输出到设备上。 

-i 将打包文件解压或者将设备上的备份还原到系统。 

-t 查看cpio打包的文件内容或者输出到设备上的文件内容。 

-v 显示打包过程中的文件名称。 

-d 在cpio还原文件的过程中,自动的建立相应的目录。 

-c 一种较新的存储方式。 

-B 让默认的Blocks可以增大到5120 bytes,默认Blocks为512 bytes,这样做的好处是可以加快存取速度。 


注意, 

1)cpio恢复的路径,如果cpio在打包备份的时候用的是绝对路径,那么在恢复的时候会自动恢复到这些绝对路径下,同理,如果在打包备份用的是相对路径,还原时也将恢复到相对路径下。 

2)cpio无法直接读取文件,它需要每个文件或者目录的完整路径名才能识别读取,而find命令的输出刚好做到了这点,因此,cpio命令一般和find命令配合使用。 

3)cpio恢复的时候不会自动覆盖同名文件。 

4)不会创建目录而是直接解压到当前文件夹。 




[举例] 

*将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中的内容了。

阅读(13278) | 评论(1) | 转发(2) |
0

上一篇:纠结

下一篇:Linux命令学习手册-rsync命令

给主人留下些什么吧!~~

vaqeteart2020-02-08 11:53:10

to orgmode