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