从档案中复制文件或向档案中写入文件。
命令语法格式
cpio –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] [–rsh-command=COMMAND] < name-list [> archive]
cpio –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] [–mes‐
sage=MESSAGE] [–force-local] [–no-absolute-filenames] [–sparse] [–only-verify-crc] [–to-stdout] [–quiet] [–rsh-command=COMMAND]
[–extract-over-symlinks] [pattern…] [< archive]
cpio –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] destination-directory < name-list
cpio {-?|–help|–usage|–version}
命令描述
GNU cpio,在归档和目录之间复制文件。它支持以下存档格式:旧的二进制cpio;旧的可移植cpio;带和不带校验和的SVR4 cpio;HP cpio;各种tar格式。
该手册整理自Debain的cipo手册,并没有涵盖全部的选项,全部选项参考「GNU CPIO」手册。
命令支持的选项及含义
指定操作模式
命令cpio由三种操作模式,通过以下选项之一请求操作模式:
-o, –create
copy-out,拷出。从标准输入中读取文件名列表,并在标准输出上创建包含这些文件的存档(除非被–file选项覆盖)。
-i, –extract
copy-in,拷入。从标准输入中读取存档并从中提取文件(或从–file选项提供的文件),或者(如果给出-t选项)将其内容列出到标准输出。如果提供了一个或多个模式,则只读取或列出与这些模式匹配的文件。选项-t隐含了-i选项。
-p, –pass-through
pass-through,复制。从标准输入中读取文件名列表,并将它们复制到指定目录。
所有模式都支持的操作
–block-size=BLOCK-SIZE
将I/O块大小设置为BLOCK-SIZE * 512字节。
-B
将I/O块大小设置为5120字节。
-c
使用旧的可移植(ASCII)存档格式。这与-H odc相同。
-C, –io-size=NUMBER
将I/O块大小设置为给定的NUMBER个字节。
-D, –directory=DIR
切换到目录DIR。
–force-local
存档文件是本地的,即使其名称包含冒号(:)。
-H, –format=FORMAT
使用给定的存档格式FORMAT。有效格式FORMAT是(括号中的数字表示单个归档成员的最大大小):
-R, –owner=[USER][:.][GROUP]
在copy-in和pass-through模式下,将创建的所有文件的所有权设置为指定的USER和GROUP。在copy-out模式下,将提供的所有者信息存储在存档中。
首先,在系统用户和组数据库中查找USER和GROUP。如果未找到,则cpio检查它们是否仅包含十进制数字,如果是,则相应地将它们视为数字UID和GID。为避免查找,并确保将参数视为数值(用户名和组名为数字的情况),请在前面加上加号(+),例如:-R +0:+0。
–quiet
在运行结束时,不要打印复制的块数。
–rsh-command=COMMAND
使用远程COMMAND,而不是rsh。
-v, –verbose
详细列出处理的文件。
-V, –dot
对于处理的每个文件,打印“.”。
-W, –warning=FLAG
控制警告显示。FLAG是:none,禁用所有警告;all,启用它们;truncate,启用有关字段截断的警告;no-truncate,禁用它们。
多个-W选项进行累积。
用于copy-in模式
-b, –swap
在数据中,交换字的半字和半字的字节。相当于-sS。
-f, –nonmatching
仅复制与任何给定模式不匹配的文件。
-n, –numeric-uid-gid
在详细的目录列表中,显示数字UID和GID值。
-r, –rename
以交互方式重命名文件。
-s, –swap-bytes
交换文件中每个半字的字节。
-S, –swap-halfwords
交换文件中每个字的半字(4个字节)。
–to-stdout
将文件解压缩到标准输出。
-E, –pattern-file=FILE
从FILE中读取模式,该模式用于指定提取或列出的文件名。
–only-verify-crc
读取CRC格式存档时,只验证存档中每个文件的CRC,而不实际提取文件。
用于copy-out模式
-A, –append
附加到现有存档。
–device-independent, –reproducible
创建可重现的档案。这相当于–ignore-devno –renumber-inodes。
–ignore-devno
将0存储在每个存档成员的设备编号字段中,而不是实际的设备编号。
-O [[USER@]HOST:]ARCHIVE-NAME
使用ARCHIVE-NAME而不是标准输出。可选的USER和HOST指定远程存档时的用户名和主机名。
可以使用此选项,或使用-F(–file)指定输出存档名称,但不能同时指定两者。
–renumber-inodes
将它们存储在存档中时,重新编号inode。
用于copy-pass模式
-l, –link
如果可能,链接文件而不是复制它们。
用于copy-in和copy-out模式
-F, –file=[[USER@]HOST:]ARCHIVE-FILE
使用此ARCHIVE-FILE代替标准输入(在copy-in模式下)或标准输出(在copy-out模式下)。可选的USER和HOST指定远程存档时的用户名和主机名。
-M, –message=STRING
到达备份媒体卷末尾时,打印STRING。
–absolute-filenames
不要从文件名中删除文件系统前缀组件。
–no-absolute-filenames
创建相对于当前目录的所有文件。
用于copy-out和copy-pass模式
-0, –null
列表中的文件名由空字符(NUL)而不是换行符(LF)分隔。
-a, –reset-access-time
读取后重置文件的访问时间。
-I [[USER@]HOST:]ARCHIVE-NAME
使用ARCHIVE-NAME而不是标准输入。可选的USER和HOST指定远程存档时的用户名和主机名。
可以使用此选项或使用-F(–file)指定输入存档名称,但不能同时指定两者。
-L, –dereference
解析符号链接(复制它们指向的文件,而不是复制链接)。
用于copy-in和copy-pass模式
-d, –make-directories
在需要的地方创建前导目录。
-m, –preserve-modification-time
创建文件时,保留以前的文件修改时间。
–no-preserve-owner
不要更改文件的所有权。
–sparse
将具有大块零的文件写为稀疏文件。
-u, –unconditional
无条件替换所有文件。
一般选项
-?, –help
给出简短的帮助描述并退出。
–usage
给出简短的使用描述并退出。
–version
打印版本信息然后退出。
退出状态
0 请求的操作执行成功;
2 发生错误;
相关手册
tar(1), rmt(8), mt(1), cpio(5)
参考文献
- man 1 cpio, Version 2.12+dfsg-6
更新日志
- 09/20/2018 创建文章