cpio备份命令
cpio是一個比較古老的備份命令,也是用于磁帶機備份的工具。雖然如此,現(xiàn)在許多時候仍然需要使用這個命令。例如定制系統(tǒng)內(nèi)存映像盤時等。
小知識:系統(tǒng)內(nèi)存映像盤通常位于引導分區(qū)/root中,文件名以initrd開頭。該文件主要用于系統(tǒng)啟動時加載需要的模塊,例如文件系統(tǒng)模塊、RAID模塊等。
小知識:內(nèi)存映像,其實就是在內(nèi)存中創(chuàng)建一個和外存文件完全相同的映像。用戶可以將整個文件映射到內(nèi)存,也可以部分映射到內(nèi)存。系統(tǒng)會將對內(nèi)存映像的改動如實的反映到外存文件中。從而實現(xiàn)了通過內(nèi)存映像對外村文件的操作。
一、cpio命令的基本格式
cpio命令與tar命令一樣,其功能也是將文件或文件列表歸檔到文件中。
【命令格式】
cpio [option] [destination-directory]
【常用選項】
i:使用coppy-in模式,還原歸檔文件或列出歸檔文件中的文件列表。
o:使用copy-out模式,建立歸檔文件。
p:使用copy-pass模式,將文件直接復制到目的目錄。
c:使用老式的ASCII歸檔模式。如果需要跨平臺使用,應該使用老式的ASCII歸檔格式。
d:創(chuàng)建需要的目錄。如果文件不處于同一目錄中,應該使用此選項。
v:顯示處理過程的詳細信息。
t:顯示歸檔文件中的文件列表。
m:保持文件的時間戳記。
H:使用指定的格式歸檔文件。
【參數(shù)說明】
copy-in:使用此模式時,任何不是選項的參數(shù)都會被當作通配符,只有被匹配的文件才能復制出來。如果沒有任何通配符,cpio將恢復所有文件。
copy-out:此模式會從標準輸入中讀取文件列表,并將文件添加到歸檔文件中,最后將歸檔文件輸出到標準輸出。由于文件列表使用換行符作為分隔符,因此文件列表最好使用find命令生成。
copy-pass:此模式會將文件列表中的文件復制到另一個目錄,中間不使用歸檔包。相當于copy-in和copy-out模式的結合。
二、使用cpio歸檔文件
使用cpio命令歸檔文件時,需要使用copy-out模式(即選項o),讀取文件列表并歸檔文件。除此之外,需要使用find命令為其生成需要歸檔的文件列表。
(1)由于cpio不會操作文件,因此輸入、輸出都必須借助重定向或管道來完成。
例如將當前目錄中的所有文件歸檔:
#使用find命令輸出當前目錄中的所有文件 #使用選項o備份管道傳過來的所有文件,并保存到上級目錄中 [root@localhost test]# find -print | cpio -o >../backup.cpio 91 blocks上面示例的命令中,如果不使用重定向輸出,cpio命令會將結果直接輸出到標準輸出。
(2)使用選項v可以顯示歸檔詳細信息:
[root@localhost zhu]# find -print | cpio -ov >../backup.cpio . ./test.sh ./.bashrc ./.bash_history ./backup.cpio ./.bash_logout ...(3)如果重定向的目標是一個設備,cpio會將歸檔文件存到設備上。例如將歸檔文件存放到磁帶機設備:
[root@localhost home]# find -print | cpio -ov >/dev/st0(4)與tar歸檔命令不同,cpio并沒有提供壓縮功能。如果要壓縮生成的歸檔文件,可以通過管道和相應的壓縮命令。
[root@localhost test]# find -print | cpio -ov | gzip >../backup.cpio.gz [root@localhost test]# find -print | cpio -ov | bzip2 >../backup.cpio.bz2三、查看歸檔文件中的文件列表
(1)查看歸檔文件中的文件列表:
[root@localhost zhu]# cpio -t <backup.cpio . join3 uniq_test smbag paste2 smbaa ...(2)查看歸檔文件中的文件列表時,可以使用選項v查看詳細的文件信息:
[root@localhost zhu]# cpio -tv <backup.cpio drwxr-xr-x 3 root root 0 Dec 10 14:53 . -rw-r--r-- 1 root root 44 Dec 9 08:41 join3 -rw-r--r-- 1 root root 98 Dec 9 09:09 uniq_test -rw-r--r-- 1 root root 1024 Dec 9 09:36 smbag ...(3)查看歸檔文件中的文件列表時,如果命令中使用了除選項以外的字符,cpio會將其當作文件通配符。例如使用“*.c”查看歸檔文件中所有以.c結尾的文件:
[root@localhost zhu]# cpio -tv "*.c" <backup.cpio -rw-r--r-- 1 root root 159 Dec 8 14:22 condition.c 91 blocks四、恢復cpio歸檔文件
恢復cpio歸檔文件時,需要使用cpio的選項copy-in模式(即選項i)。與查看歸檔文件中的文件列表相同,此模式也會將所有選項以外的字符當成通配符。
(1)如果歸檔文件使用了不同的格式,cpio會自動判斷并恢復文件,無須再指定歸檔文件的格式。
例如使用選項i將文件從歸檔文件中恢復出來,并顯示恢復文件的詳細信息:
[root@localhost zhu]# cpio -iv <./backup.cpio轉(zhuǎn)載于:https://www.cnblogs.com/nufangrensheng/p/3473772.html
總結
- 上一篇: Mac下搭建cocos2d 和cocos
- 下一篇: split小数点