總覽 (SYNOPSIS)
cpio {-o|--create} [-0acvABLV] [-C bytes] [-H format] [-M
message] [-O [[user@]host:]archive] [-F [[user@]host:]archive]
[--file=[[user@]host:]archive] [--format=format] [--message=message]
[--null] [--reset-access-time] [--verbose] [--dot] [--append]
[--block-size=blocks] [--dereference] [--io-size=bytes] [--quiet]
[--force-local] [--help] [--version] < name-list [> archive]
cpio {-i|--extract} [-bcdfmnrtsuvBSV] [-C bytes] [-E file]
[-H format] [-M message] [-R [user][:.][group]] [-I [[user@]host:]archive]
[-F [[user@]host:]archive] [--file=[[user@]host:]archive]
[--make-directories] [--nonmatching] [--preserve-modification-time]
[--numeric-uid-gid] [--rename] [--list] [--swap-bytes] [--swap] [--dot]
[--unconditional] [--verbose] [--block-size=blocks] [--swap-halfwords]
[--io-size=bytes] [--pattern-file=file] [--format=format]
[--owner=[user][:.][group]] [--no-preserve-owner] [--message=message]
[--force-local] [--no-absolute-filenames] [--sparse] [--only-verify-crc]
[--quiet] [--help] [--version] [pattern...] [< archive]
cpio {-p|--pass-through} [-0adlmuvLV] [-R
[user][:.][group]] [--null] [--reset-access-time] [--make-directories]
[--link] [--quiet] [--preserve-modification-time] [--unconditional]
[--verbose] [--dot] [--dereference] [--owner=[user][:.][group]]
[--no-preserve-owner] [--sparse] [--help] [--version] destination-directory
< name-list
描述 (DESCRIPTION)
本手冊頁 描述 GNU
版本 的 cpio.
cpio 可以 從 cpio 或 tar
格式 的 歸檔包(archive) 中
讀寫 文件, 歸檔包 是
一種文件, 它 由
歸檔文件 及其
相關信息 組成, 例如
文件名, 屬主, 時標 (timestamp),
和 訪問權限. 歸檔包
可以 是 磁盤上的 文件,
也可以 是
磁帶或管道.
cpio 有 三種
操作模式.
在 copy-out 模式中, cpio 把
文件 複製到 歸檔包 中.
它 從 標準輸入 讀取
文件名列表,
每行一個文件名.
生成的 歸檔包 寫到
標準輸出. 產生
文件名列表 的
典型方法 是 使用 find
命令; 你 可能 要在 find
後面 用上 -depth 選項, 減少
因爲 進入 沒有
訪問權限 的 目錄 引起
的 麻煩.
在 copy-in 模式中, cpio 從
歸檔包 讀取 文件, 或者
列出 歸檔包 的 內容,
歸檔包 來自 標準輸入.
任何 非選項
命令行參數 被視爲 shell
的 通配符模式串 (globbing
pattern); 在 歸檔包 中, 只
讀取 文件名 匹配 這些
模式串 的 文件. 和 shell
環境 不一樣, 文件名
起始處 的 '.' 可以 匹配
模式串 起始處 的
通配符, 文件名中 的 '/'
也可以 匹配 通配符.
如果 沒有 給出 模式串,
那麼 讀取 所有 文件.
在 copy-pass 模式中, cpio 把
文件 從 一棵目錄樹
複製到 另一棵, 它
結合了 copy-in 和 copy-out 的
操作, 但是 沒有 使用
歸檔包. cpio 從
標準輸入 讀取
欲複製的 文件名列表;
目標目錄 是
非選項命令行參數.
cpio 支持 下列的
歸檔 格式: binary, old ASCII, new ASCII, crc, HPUX
binary, HPUX old ASCII, old tar, 和 POSIX.1 tar.
"binary" 格式 是 過時
格式, 因爲 它 保存
文件信息 的 方法 無法
應用在 不同體系 的
機器 上. "old ASCII" 格式
可以 跨平臺 使用, 但是
不能 用於 超過 65536 個 i
節點 的 文件系統 中.
"new ASCII" 格式 可以
跨平臺 使用, 也 適用於
任意大小 的 文件系統
上, 但 不是 所有 版本
的 cpio 都 支持, 目前
只有 GNU 和 System VR4 的 cpio 能夠
支持 "new ASCII" 格式. "crc"
格式 類似於 "new ASCII"
格式, 而且 對每個 文件
計算 校驗和; cpio 在
創建 歸檔包 時 計算
校驗和, 解開 文件 時
進行 校驗. "HPUX" 格式
用於 兼容 HP UNIX 的 cpio, 它
用了 獨特的方法 保存
設備文件.
"tar" 格式 用以 兼容
tar 程序. 它 不能 對
文件名 超過 100 個 字符
的 文件 歸檔, 也 不能
對 特殊文件 (塊設備 或
字符設備) 歸檔. "POSIX.1 tar"
格式 不能 對 文件名
超過 255 個 字符 的 文件
歸檔 (小於 255, 除非
文件名 的 最右邊
有一個 "/").
缺省情況下, cpio
爲了 兼容 老式的 cpio
程序, 創建 "binary" 格式
的 歸檔包. 當展開
歸檔包 時, cpio 能夠
自動識別 歸檔包 的
格式, 而且 能夠 讀取
不同 字節順序 的 機器
上 創建 的 歸檔包.
cpio 的 某些 選項
只能 用在 相應的
操作模式 上; 參見 總覽
小節, 裏面 列出了
什麼模式 可以用
什麼選項.
選項 (OPTIONS)
- -0, --null
- 在 copy-out 和 copy-pass 模式中,
認爲 輸入的 文件名
以 null 字符 結尾, 而不是
換行符, 這樣 即使
文件名 中 包含
換行符, 也 不影響
歸檔. GNU find 是 生成 null
結尾 文件名 列表 的
方法 之一.
- -a,
--reset-access-time
- 讀取完 文件 後 重置
文件的訪問時間, 這樣
看上去 就象 沒有
訪問 過 這個 文件.
- -A, --append
- 添加到 現存的 歸檔包
中. 僅用於 copy-out 模式. 該
歸檔包 必須是 用 -O
或 -F (--file) 選項 生成的
磁盤文件.
- -b, --swap
- 在 copy-in 模式中, 顛倒
數據中 字 的 字節
順序. 相當於 -sS. 使用
這個 選項 可以 在
大端數 和 小端數
機器 之間 轉換 32 位
整數.
- -B
- 把 I/O 塊 大小 設置成 5120
字節. 最初的 塊大小
是 512 字節.
- --block-size=BLOCK-SIZE
- 設置 I/O 塊 大小 爲 BLOCK-SIZE * 512
字節.
- -c
- 使用 老式的 跨平臺 (ASCII)
歸檔 格式.
- -C IO-SIZE,
--io-size=IO-SIZE
- 設置 I/O 塊 大小 爲 IO-SIZE
字節.
- -d,
--make-directories
- 在 需要的地方 創建
起始目錄.
- -E FILE,
--pattern-file=FILE
- 在 copy-in 模式中, 從 FILE 裏
讀取 用於 匹配
文件名 的 模式串. FILE 的
內容 如同 cpio 的
非選項 參數.
- -f, --nonmatching
- 只複製 那些 不匹配
給定的 模式串 的
文件.
- -F, --file=archive
- 使用 歸檔包文件,
而不是
標準輸入或輸出. 如果
把 其他 機器上 的
磁帶機 作成
歸檔包文件, 文件名
要用 "HOSTNAME:" 開始.
主機名 前面 可以
加上 用戶名 和 一個 '@',
作爲 訪問 遠程
磁帶機 的 用戶 (如果
你有 這樣的 權限,
一般 在 用戶的 ~/.rhosts
文件中 會有 這麼
一項).
- --force-local
- 和 -F, -I, 或 -O,
一起用, 可以 把
歸檔包文件 看作
本地文件, 即使
文件名 中 含有 冒號,
一般說來 冒號 指出
一個 遠程主機 的
存在.
- -H FORMAT,
--format=FORMAT
- 使用 歸檔格式 FORMAT. 有效
的 格式 列在 下面,
大小寫 均可. "copy-in"
模式 的 缺省動作 是
自動檢測 歸檔格式,
"copy-out" 的 缺省格式 是
"bin".
- bin
- 老式的 binary 格式.
- odc
- 老式的 (POSIX.1) 跨平臺
格式.
- newc
- 新型 (SVR4) 跨平臺 格式,
支持 大於 65536 i節點 的
文件系統.
- crc
- 新型 (SVR4) 跨平臺 格式,
並且 計算 校驗和.
- tar
- 老式的 tar 格式.
- ustar
- POSIX.1 tar 格式, 也能 識別 GNU
tar 歸檔文件, 它們
相似 但不全相同.
- hpbin
- HP UNIX 上的 cpio 使用的
老式的 binary 格式. (用
獨特的方法 儲存
設備文件)
- hpodc
- HP UNIX 上的 cpio 使用的
跨平臺 格式. (用
獨特的方法 儲存
設備文件)
- -i, --extract
- 進入 copy-in 模式.
- -I archive
- 使用 歸檔包文件,
而不是 標準輸入.
如果 把 其他 機器上
的 磁帶機 作成
歸檔包文件, 文件名
要用 "HOSTNAME:" 開始.
主機名 前面 可以
加上 用戶名 和 一個 '@',
作爲 訪問 遠程
磁帶機 的 用戶 (如果
你有 這樣的 權限,
一般 在 用戶的 ~/.rhosts
文件中 會有 這麼
一項).
- -k
- 無效操作; 只是 用來
兼容 其他 版本 的 cpio.
- -l, --link
- 如果有可能, 連接
文件, 而不是 複製.
- -L, --dereference
- 解除 符號連接 的
關聯 (複製 符號連接
指向的 文件, 而不是
連接 本身).
- -m,
--preserve-modification-time
- 當 創建 文件 時, 保留
以前的
文件修改時間.
- -M MESSAGE,
--message=MESSAGE
- 當 備份 媒體 (例如
磁帶或軟盤) 到達
卷尾時, 顯示 一條
消息, 提醒 用戶 插入
下一卷. 如果 MESSAGE 包含
字符串 "%d", 它 替換成
當前 卷號 (從 1 開始).
- -n,
--numeric-uid-gid
- 以 繁瑣模式 (verbose) 顯示
內容 時, 用 數字 顯示 UID
和 GID, 而 不是 名稱.
-
--no-absolute-filenames
- 在 copy-in 模式中, 在
當前目錄中 創建 所有
相關 文件, 即使 它們
在 歸檔包中 有
絕對路徑名.
-
--no-preserve-owner
- 在 copy-in 和 copy-pass 模式中,
不改變 文件 的
屬主關係 (譯註:
疑爲不保留); 使 它們
屬於 展開 它們 的
用戶. 這是 普通用戶
的 缺省行爲, 因此 System V
的 用戶 不致於
無意中 把 文件 送人.
- -o, --create
- 進入 copy-out 模式.
- -O archive
- 使用 歸檔包文件,
而不是 標準輸出.
如果 把 其他 機器上
的 磁帶機 作成
歸檔包文件, 文件名
要用 "HOSTNAME:" 開始.
主機名 前面 可以
加上 用戶名 和 一個 '@',
作爲 訪問 遠程
磁帶機 的 用戶 (如果
你有 這樣的 權限,
一般 在 用戶的 ~/.rhosts
文件中 會有 這麼
一項).
-
--only-verify-crc
- 當以 copy-in 模式 讀入 CRC
格式 的 歸檔包 時,
不展開 裏面的文件,
只是 測試 文件的 CRC 碼.
- -p, --pass-through
- 進入 copy-pass 模式.
- --quiet
- 不顯示 複製的 塊數.
- -r, --rename
- 交互式 文件 改名.
- -R [user][:.][group], --owner
[user][:.][group]
- 在 copy-out 和 copy-pass 模式中, 把
所有文件 的 屬主
設置爲 指定的 用戶
和/或 用戶組. 無論
用戶 還是 用戶組
都必須 存在. 如果
省略 用戶組, 但卻
給出了 分隔符 ":" 或
".', 則 使用 該 用戶 的
登錄用戶組. 只有
超級用戶 能夠 改變
文件的屬主.
- --sparse
- 在 copy-out 和 copy-pass 模式中, 把
大塊 數據0 的 文件
寫成 稀疏文件 (sparse file).
- -s, --swap-bytes
- 在 copy-in 模式中, 交換
文件中 每一個
半字(字節對) 中的
字節.
- -S,
--swap-halfwords
- 在 copy-in 模式中, 交換
文件中 每一個
字(4字節) 中的 半字.
- -t, --list
- 顯示 輸入(歸檔包) 的
內容.
- -u,
--unconditional
- 替換 所有 文件,
不再提問 是否 用
舊文件 替換
已經存在的 新文件.
- -v, --verbose
- 列出 處理的文件,
加上 -t 選項 可以
列出 一個 'ls -l'
風格的列表. 在一個
歸檔包 的 內容
詳細列表 (verbose) 中, 如果
本地系統 不存在
歸檔文件的
用戶和用戶組 名稱,
就用 其數字 UID和GID
對應於 本地系統的
用戶和用戶組 名稱
代替.
- -V --dot
- 每處理一個文件,
顯示一個 ".".
- --version
- 顯示 cpio 程序 的
版本號, 然後退出.
《中國Linux論壇man手冊頁翻譯計劃》
http://cmpp.linuxforum.net
跋
本頁面中文版由中文
man 手冊頁計劃提供。
中文 man
手冊頁計劃:https://github.com/man-pages-zh/manpages-zh