跳至內容

Cpio

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

cpioUNIX作業系統的一個檔案備份程式及檔案格式。這項工具最初出現於PWB/UNIX,係用於備份磁帶,後來也被引進到UNIX System IIISystem 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/lsbin/ls)。

複製文件[編輯]

除上述操作外,cpio 還支持複製文件的操作,該操作由命令行標識 p(pass) 發起。該模式可以同時進行 copy-incopy-out 操作,而不會創建任何歸檔文件。在該模式下,cpio 從標準輸入讀取路徑名(就像 copy-out 中的那樣,但這裡不會創建歸檔文件),然後 cpio 將這些文件和目錄複製創建到命令行參數指定的不同位置。

下面這個示例將從當前目錄開始,將完整目錄樹複製到 new-path 路徑下。指定標識 m 時,該複製過程會保留文件原有的編輯時間,d 標識會命令 cpio 按需創建目錄,指定 u 標識時,複製過程會直接覆蓋已經存在的同名文件,v 標識會在標準輸出打印複製進度:

$ find . -depth -print | cpio -p -dumv new-path