歸檔包,也可稱為文件庫,其實就是 cpio 或 tar 格式的文件,該文件中包含其他文件以及一些相關信息(文件名、訪問權限等)。歸檔包既可以是磁盤中的文件,也可以是磁帶或管道。
cpio 命令可以看做是備份或還原命令,因為它可以將數據(文件)備份到 cpio 歸檔庫,也可以利用 cpio 文檔庫對數據進行恢復。[root@localhost ~]# cpio -o[vcB] > [文件丨設備]
各選項含義如下:[root@localhost ~]#find /etc -print | cpio -ocvB > /root/etc.cpio
#利用find命令指定要備份/etc/目錄,使用>導出到etc.cpio文件
[root@localhost ~]# II -h etc.cpio
-rw--r--r--.1 root root 21M 6月5 12:29 etc.cpio
#etc.cpio文件生成
[root@localhost ~]# cpio -i[vcdu] < [文件|設備]
各選項的含義為:[root@localhost ~]# cpio -idvcu < /root/etc.cpio
#還原etc的備份
#如果大家査看一下當前目錄/root/,就會發現沒有生成/etc/目錄。這是因為備份時/etc/目錄使用的是絕對路徑,所以數據直接恢復到/etc/系統目錄中,而沒有生成在/root/etc/目錄中
[root@localhost ~]# cd /tmp/
#進入/tmp/目錄
[root@localhost tmp]#rm -rf*
#刪除/tmp/目錄中的所有數據
[root@localhost tmp]# mkdir test
#建立備份目錄
[root@localhost tmp]# find /boot/ -print | cpio -p /tmp/test
#備份/boot/目錄到/tmp/test/目錄中
[root@localhost tmp]# ls test/boot
#在/tmp/test/目錄中備份出了/boot/目錄
[root@localhost ~]# rpm2cpio 包全名|cpio -idv .文件絕對路徑
該命令中,rpm2cpio 就是將 RPM 包轉換為 cpio 格式的命令,通過 cpio 命令即可從 cpio 文件庫中提取出指定文件。rpm -qf 命令即可,如下所示:[root@localhost ~]# rpm -qf /bin/ls
coreutils-8.4-19.el6.i686
#查看ls文件屬于哪個軟件包
[root@localhost ~]# mv /bin/ls /root/
#把/bin/ls命令移動到/root/目錄下,造成誤刪除的假象
[root@localhost ~]# ls
-bash: ls: command not found
#這時執行ls命令,系統會報"命令沒有找到"錯誤
[root@localhost ~]# rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.el6.i686.rpm
|cpio -idv ./bin/ls
#提取ls命令文件到當前目錄下
[root@localhost ~]# cp /root/bin/ls /bin/
#把提取出來的ls命令文件復制到/bin/目錄下
[root@localhost ~]#ls
anaconda-ks.cfg bin inittab install.log install.log.syslog ls
#可以看到,ls命令又可以正常使用了
新聞熱點
疑難解答