【转】linux下cpio命令使用

转自:http://www.51testing.com/html/32/498132-816949.html

功能说明:备份文件。

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

cpio文件的类型判断:

[[email protected] test]# file test.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指令解包

时间: 2024-10-26 00:27:27

【转】linux下cpio命令使用的相关文章

linux下find命令和文件的三种时间

    Linux下find命令在目录结构中搜索文件,并执行指定的操作.Linux下find命令提供了相当多的查找条件,功能很强大.由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下.即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限. 1.命令参数:     pathname: find命令所查找的目录路径.例如用.来表示当前目录,用/来表示系统根目录.   -print: find命令将匹配的文件输出到标准输出

(转)Linux下PS命令详解

(转)Linux下PS命令详解 整理自:http://blog.chinaunix.net/space.php?uid=20564848&do=blog&id=74654 要对系统中进程进行监测控制,查看状态,内存,CPU的使用情况,使用命令:/bin/ps (1) ps :是显示瞬间进程的状态,并不动态连续: (2) top:如果想对进程运行时间监控,应该用 top 命令: (3) kill 用于杀死进程或者给进程发送信号: (4) 查看文章最后的man手册,可以查看ps的每项输出的含义

Linux下more命令C语言实现实践

1. more第一版 实现基础功能,显示每一页固定24行文本,"q Enter"退出, "Enter" 下一行, "space Enter"下一页. /************************************************************************* > File Name: more01.c > Author: qianlv > Mail: [email protected] &

Linux下chkconfig命令详解

Linux下chkconfig命令详解 chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息.谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接. 使用语法:chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset] chkconfig在没有参数运行时,显示用法.如果加上服务名,那么就检查这个服务是否在当前运行级启动.如果是,返

转载的 Linux下chkconfig命令详解

Linux下chkconfig命令详解 chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息.谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接. 使用语法: chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset] chkconfig 在没有参数运行时,显示用法.如果加上服务名,那么就检查这个服务是否在当前运行级启动.如果是

linux下常用命令备忘

转自:Linux 命令集锦 linux下查看监听端口对应的进程 # lsof -i:9000 # lsof -Pnl +M -i4 如果退格键变成了:"^h". 终端连接unix删除退格键,按住CTL键同时按delete Linux搜索 # find / -name "xxx.conf" 查看linux是32位还是64位的命令 #file /sbin/init #getconf LONG_BIT #getconf -a 在Linux和Windows下都可以用nslo

Linux 下 who 命令

命令: who: 常用选项 意义 -a 显示所有用户的所有信息 -m 显示运行该程序的用户 -p 只显示用户的登陆帐号和登陆用户的数量,该选项优先级高于其他任何选项 -r 显示当前用户的运行级别,是在那个级别运行的 -u 在登陆用户后面显示该用户最后一次对系统进行操作距今的时间 参数:注:格式有点乱, -a, --all : 系统引导 2014-05-30 00:32 运行级别 2 2014-05-30 00:32 登录 tty4 2014-05-30 00:32 932 id=4 登录 tty

linux下find命令的使用

find find命令是我们常用的查找文件的命令,它是一个非常强大的查找指令,但相对话费的时间会很长,并且非常消耗资源. 语法: find [路径] [参数] [表达式] [-exec -ok ...] 指令 {} \; {}     代表find找到的文件: \      禁止转义: {}  \; 之间是有空格的: ;      表示本指令结束 -exec  find命令对匹配的文件执行该参数所给出的shell命令: -ok    和-exec的作用相同,只不过是一种更为安全的模式来执行该参数

Linux下ls命令显示符号链接权限为777的探索

Linux下ls命令显示符号链接权限为777的探索 --深入ls.链接.文件系统与权限 一.摘要 ls是Linux和Unix下最常使用的命令之一,主要用来列举目录下的文件信息,-l参数允许查看当前目录下所有可见文件的详细属性,包括文件属性.所有者.文件大小等信息.但是,当其显示符号链接的属性时,无论其指向文件属性如何,都会显示777,即任何人可读可写可执行.本文从ls命令源码出发,由浅入深地分析该现象的原因,简略探究了Linux 4.10下的符号链接链接.文件系统与权限的源码实现. 关键词:Li