「cpio(1)」-

  LINUX MANUAL PAGES

从档案中复制文件或向档案中写入文件。

命令语法格式

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是(括号中的数字表示单个归档成员的最大大小):

bin,过时的二进制格式。(2147483647字节)

odc,旧的(POSIX.1)可移植格式。(8589934591字节)

newc,新的(SVR4)可移植格式,支持具有超过65536个i节点的文件系统。(4294967295字节)

crc,新的(SVR4)可移植格式,但添加了校验和。

tar,旧的tar格式。(8589934591字节)

ustar,是POSIX.1 tar格式。还识别GNU tar档案,它们相似但不完全相同。(8589934591字节)

hpbin,是HPUX的cpio使用的过时二进制格式(以不同方式存储设备文件)。

hpodc,是HPUX的cpio使用的可移植格式(以不同方式存储设备文件)。

-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 创建文章