一、提取所有文件
用法1: rpm2cpio xxx.rpm > xxx.cpio cpio -i --make-directories < xxx.cpio 用法2: rpm2cpio xxx.rpm | cpio -idmv 用法3: rpm2cpio xxx.rpm | cpio --extract --make-directories
<br />
参数i和extract相同,表示提取文件;
v表示指示执行进程 ;
d 和make-directory相同,表示根据包中文件原来的路径建立目录 ;
m 表示保持文件的更新时间。
这里以atop包为例,解包所有文件的操作如下:
[root@localhost 361way]# ls atop-2.1-1.x86_64.rpm [root@localhost 361way]# ll total 156 -rw-r--r-- 1 root root 156613 Feb 2 22:34 atop-2.1-1.x86_64.rpm [root@localhost 361way]# rpm2cpio atop-2.1-1.x86_64.rpm > atop.cpio [root@localhost 361way]# ll total 492 -rw-r--r-- 1 root root 156613 Feb 2 22:34 atop-2.1-1.x86_64.rpm -rw-r--r-- 1 root root 342424 Feb 2 22:34 atop.cpio [root@localhost 361way]# cpio -i --make-directories < atop.cpio 669 blocks [root@localhost 361way]# ll total 504 -rw-r--r-- 1 root root 156613 Feb 2 22:34 atop-2.1-1.x86_64.rpm -rw-r--r-- 1 root root 342424 Feb 2 22:34 atop.cpio drwxr-xr-x 6 root root 4096 Feb 2 22:34 etc drwxr-xr-x 5 root root 4096 Feb 2 22:34 usr drwxr-xr-x 3 root root 4096 Feb 2 22:34 var
<br />
这里使用的是两步解开的方法,也可以使用方法2、3 一步解开所有文件方法。
二、解压出指定的文件
很多情况下,我们仅仅只想获取其中的某个文件,这种情况下无需解压出所有文件再提取,这里有更快捷的文件。
1、查看rpm包的所有文件
可以通过rpm命令进行查看,也可以通过rpm2cpio命令进行查看
rpm -qlp xxx.rpm 或 rpm2cpio xxx.rpm | cpio -t
<br />
rpm命令中几个参数的意思如下:
-q --query 查询 -l --list 列出 -f --file 指定文件 -p --package 指定rpm包
<br />
注:这里的输出结果rpm2cpio的输出结果会以./开头,而rpm的输出结果前面没有“ .” 符号。
rpm2cpio的输出结果如下:
[root@localhost 361way]# rpm2cpio atop-2.1-1.x86_64.rpm |cpio -t ./etc/atop/45atoppm ./etc/atop/atop.daily ./etc/cron.d/atop ./etc/init.d/atop ./etc/init.d/atopacct ./etc/logrotate.d/psaccs_atop ./etc/logrotate.d/psaccu_atop ./usr/bin/atop ./usr/bin/atopsar ./usr/sbin/atopacctd ./usr/share/doc/packages/atop ./usr/share/doc/packages/atop/AUTHOR ./usr/share/doc/packages/atop/COPYING ./usr/share/doc/packages/atop/ChangeLog ./usr/share/doc/packages/atop/README ./usr/share/man/man1/atop.1.gz ./usr/share/man/man1/atopsar.1.gz ./usr/share/man/man5/atoprc.5.gz ./usr/share/man/man8/atopacctd.8.gz ./var/log/atop 669 blocks
<br />
2、解压指定的文件
这里以第一个文件为例,通过" rpm2cpio atop-2.1-1.x86_64.rpm|cpio -id ./etc/atop/45atoppm "指令就可以解压出该文件了:
[root@localhost 361way]# ll total 156 -rw-r--r-- 1 root root 156613 Feb 2 22:36 atop-2.1-1.x86_64.rpm [root@localhost 361way]# rpm2cpio atop-2.1-1.x86_64.rpm|cpio -id ./etc/atop/45atoppm 669 blocks [root@localhost 361way]# ll total 160 -rw-r--r-- 1 root root 156613 Feb 2 22:36 atop-2.1-1.x86_64.rpm drwxr-xr-x 3 root root 4096 Feb 2 23:39 etc [root@localhost 361way]# ls etc/atop/45atoppm etc/atop/45atoppm
<br />
三、其他方法
除此之外,也可以通过mc命令解压文件,mc文件是一个终端下的窗口文件管理器。其官方站点为:http://www.midnight-commander.org/ ,默认也在redhat/centos源中有该软件 ,可以直接通过yum命令进行安装。