原创作品,允许转载,转载时请务必以超链接形式标明文章
原始出处 、作者信息和本声明。否则将追究法律责任。
http://snailwarrior.blog.51cto.com/680306/145588
【小蜗牛无聊之作
650) this.width=650;" height=19 onsubmit onchange onunload onselect onreset>】

昨天不小心把/etc/mail/sendmail.mc修改坏了,又没有备份最原始的文件,于是想到重新从rpm包中提取出来。
首先,要确定/etc/mail/sendmail.mc属于哪个rpm包:
[root@pps tmp]# rpm -qf /etc/mail/sendmail.mc
sendmail-8.13.8-2.el5
[root@pps tmp]# rpm -qf /etc/mail/sendmail.mc
sendmail-8.13.8-2.el5
然后从iso安装光碟中提取出sendmail-8.13.8-2.el5.i386.rpm(或者其它方式取得),确认一下sendmail.mc的路径:
[root@pps tmp]# rpm -qlp sendmail-8.13.8-2.el5.i386.rpm | grep sendmail.mc
warning: sendmail-8.13.8-2.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
/etc/mail/sendmail.mc
[root@pps tmp]# rpm -qlp sendmail-8.13.8-2.el5.i386.rpm | grep sendmail.mc
warning: sendmail-8.13.8-2.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
/etc/mail/sendmail.mc
在提取sendmail.mc之前,有必要确认一下它的相对路径:
[ root@pps tmp]# rpm2cpio sendmail-8.13.8-2.el5.i386.rpm | cpio -t | grep sendmail.mc
2570 blocks
./etc/mail/sendmail.mc
[ root@pps tmp]# rpm2cpio sendmail-8.13.8-2.el5.i386.rpm | cpio -t | grep sendmail.mc
2570 blocks
./etc/mail/sendmail.mc
好,现在可以放心提取sendmail.mc了:
[root@pps tmp]# rpm2cpio sendmail-8.13.8-2.el5.i386.rpm | cpio -idv ./etc/mail/sendmail.mc
./etc/mail/sendmail.mc
2570 blocks
[root@pps tmp]# rpm2cpio sendmail-8.13.8-2.el5.i386.rpm | cpio -idv ./etc/mail/sendmail.mc
./etc/mail/sendmail.mc
2570 blocks
【注意】cpio参数后的文件路径"
./etc/mail/sendmail.mc"必须和前面查询的相对路径一样,否则提取不成功。
cpio参数说明:
-t 列出的意思,和"--list"等同,注意,此时列出的是“相对路径”
-i 抽取的意思,和"--extract"等同
-d 建立目录,和"--make-directories"等同
-v 冗余信息输出,和"--verbose"等同
-t 列出的意思,和"--list"等同,注意,此时列出的是“相对路径”
-i 抽取的意思,和"--extract"等同
-d 建立目录,和"--make-directories"等同
-v 冗余信息输出,和"--verbose"等同
rpm参数说明:
-q --query 查询
-q --query 查询
-l --list 列出
-f --file 指定文件
-p --package 指定rpm包