Cpio
此條目可參照英語維基百科相應條目來擴充。 (2017年2月4日) |
此條目需要精通或熟悉計算機科學的編者參與及協助編輯。 (2010年10月9日) |
cpio 是UNIX作業系統的一個檔案備份程式及檔案格式。這項工具最初出現於PWB/UNIX,係用於備份磁帶,後來也被引進到UNIX System III及System V,並流行開來。
cpio 可以從 cpio 或 tar 格式的歸檔包中存入和讀取文件, 歸檔包是一種包含其他文件和有關信息的文件。 有關信息包括:文件名, 屬主, 時標(timestamp), 和訪問權限。 歸檔包可以是磁盤上的 其他文件, 也可以是磁帶或管道.
示例操作和歸檔格式
編輯cpio 設計的初衷,是用於在磁帶設備上,以順序、連續的方式保存備份的文件歸檔。cpio 本身不會對任何歸檔內容進行壓縮,為了便於傳輸,對於 cpio 的輸出歸檔人們經常會使用 gzip 等外部程序進行壓縮。
創建歸檔
編輯使用以下命令可以用當前目錄下的所有文件和文件夾來創建新的 cpio 歸檔文件:
find . -depth -print | cpio -o > /path/archive.cpio
提取歸檔
編輯cpio 的 copy-input 操作由命令行標識 i 發起。在該過程中,cpio 從標準輸入讀取已有的歸檔,然後在操作系統的文件系統中,恢復創建已經被歸檔的文件。
$ cpio -i -vd < archive.cpio
命令行標識 d 告訴 cpio 按需重建目錄。指定命令行標識 v (verbose) 時,提取文件會同時打印其文件名。
除了選項標識外,其餘所有命令行參數都是類 shell 的 globbing-模式,歸檔中,只有文件名匹配的文件才會從中提取出來。下面這個示例從歸檔 archive.cpio 中提取文件 /etc/fstab :
$ cpio -i -d /etc/fstab < archive.cpio
列出歸檔文件列表
編輯下面這行命令可以列出指定 cpio 歸檔中包含的全部文件:
$ cpio -t < archive.cpio
列出歸檔文件列表在歸檔內可能包含絕對路徑時會很實用(例如 /bin/ls 和 bin/ls)。
複製文件
編輯除上述操作外,cpio 還支持複製文件的操作,該操作由命令行標識 p(pass) 發起。該模式可以同時進行 copy-in 和 copy-out 操作,而不會創建任何歸檔文件。在該模式下,cpio 從標準輸入讀取路徑名(就像 copy-out 中的那樣,但這裡不會創建歸檔文件),然後 cpio 將這些文件和目錄複製創建到命令行參數指定的不同位置。
下面這個示例將從當前目錄開始,將完整目錄樹複製到 new-path 路徑下。指定標識 m 時,該複製過程會保留文件原有的編輯時間,d 標識會命令 cpio 按需創建目錄,指定 u 標識時,複製過程會直接覆蓋已經存在的同名文件,v 標識會在標準輸出打印複製進度:
$ find . -depth -print | cpio -p -dumv new-path