1. 程式人生 > >rpm實驗--刪除某文件後利用rpm2cpio解開rpm來恢復文件

rpm實驗--刪除某文件後利用rpm2cpio解開rpm來恢復文件

dia bsp tab fun sysconfig var 刪除文件 entos func

1.刪除文件

[root@centos6 ~]# rm -rf /etc/rc.d/init.d/functions

2.查詢文件來自於哪一個已安裝rpm包

[root@centos6 ~]# rpm -qf /etc/rc.d/init.d/functions
initscripts-9.03.58-1.el6.centos.x86_64

3.掛載光盤

[root@centos6 ~]#mount /dev/cdrom /media/  
mount: block devi ce /dev/sr1 is write-protected, mounting read-only

4.復制rpm到一個臨時目錄


[root@centos6 ~]#cp /media/Packages/initscripts-9.03.58-1.el6.centos.x86_64.rpm /app    

5.進入臨時目錄並解開rpm包

[root@centos6 ~]#cd /app
[root@centos6 app]# rpm2cpio initscripts-9.03.58-1.el6.centos.x86_64.rpm |cpio –id

cpio是歸檔類型文件,

-id 解壓

-tv 瀏覽

-ov 備份
6.從解出的目錄裏找到需要的文件並復制到相關的原目錄下

[root@centos6 app]#ls
apache22                        CentOS-6.8-x86_64-bin-DVD2.iso               lib   var
bin                             etc                                          sbin
CentOS-6.8-x86_64-bin-DVD1.iso  initscripts-9.03.58-1.el6.centos.x86_64.rpm  usr

[root@centos6 app]#cd etc

註意:此處進入etc目錄時,不要加/,如果加了的話,默認是根目錄下的etc,那麽進去之後不會有functions這個文件,因為已經刪了。


[root@centos6 etc]#ls
adjtime         networks   rc0.d  rc4.d  rc.local    statetab     sysctl.d
init            ppp        rc1.d  rc5.d  rc.sysinit  statetab.d   X11
inittab         profile.d  rc2.d  rc6.d  rwtab       sysconfig
NetworkManager  rc         rc3.d  rc.d   rwtab.d     sysctl.conf
[root@centos6  app]# cp etc/rc.d/init.d/functions /etc/rc.d/init.d/

rpm實驗--刪除某文件後利用rpm2cpio解開rpm來恢復文件