結合rpm,rpm2cpio,cpio提取rpm包的特定文件

結合rpm,rpm2cpio,cpio提取rpm包的特定文件

http://snailwarrior.blog.51cto.com/680306/145588

 

昨天不小心把/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
 
然後從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
 
在提取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
 
【注意】cpio參數後的文件路徑"./etc/mail/sendmail.mc"必須和前面查詢的相對路徑一樣,否則提取不成功。
 
cpio參數說明:
-t  列出的意思,和"--list"等同,注意,此時列出的是“相對路徑”
-i  抽取的意思,和"--extract"等同
-d  建立目錄,和"--make-directories"等同
-v  冗餘信息輸出,和"--verbose"等同
 
rpm參數說明:
-q  --query 查詢
-l  --list 列出
-f  --file 指定文件
-p --package 指定rpm包
發佈了3 篇原創文章 · 獲贊 5 · 訪問量 31萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章