总览 (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 程序 的 版本号, 然后退出. 

cpio - 存取归档包中的文件的更多相关文章

  1. rpm2cpio---如何不安装但是获取rpm包中的文件

    如何不安装但是获取rpm包中的文件 使用工具rpm2cpio和cpio rpm2cpio xxx.rpm | cpio -idmv 参数i表示提取文件.v表示指示执行进程,d和make-directo ...

  2. 『学了就忘』Linux软件包管理 — 44、在RPM包中提取文件

    目录 1.RPM包中文件的提取 2.在RPM包中提取文件的操作 (1)cpio命令介绍 (2)提取RPM包中文件 1.RPM包中文件的提取 为什么要做这个事呢? 在操作Linux系统的时候误删除一个文 ...

  3. java读取jar包中的文件

    随手写了一个java小工具,maven打包成功后,发现工具总是读不到打在jar包中的文件信息,要读取的文件位于 /src/main/resources 目录下,打包成功后,文件就在jar包中根目录下, ...

  4. 使用命令动态更新JAR包中的文件

    动态更新JAR包中的文件,经本人实际测试可正常执行! 一.查询jar包中要替换的文件位置 jar  -tvf  gateway.jar  |  grep  topjui.config.js 二.在当前 ...

  5. 在swt中获取jar包中的文件 uri is not hierarchical

    uri is not hierarchical 学习了:http://blog.csdn.net/zdsdiablo/article/details/1519719 在swt中获取jar包中的文件: ...

  6. jar命令+7z:创建,替换,修改,删除Jar, war, ear包中的文件

    虽然现在已经有各种智能的IDE可以为我们生成jar包,war包,ear包,甚至带上了自动替换,部署的功能.但一定会有那么些时候,你需要修改或是替换jar包,war包,ear包中的某个文件而不是整个重新 ...

  7. 替换war包中的文件

    原文:https://blog.csdn.net/wuawua1/article/details/53906700 1.如果要替换的文件直接在war包的根目录(一级目录)下,直接使用jar uvf命令 ...

  8. tar 只解压tar包中某个文件

    sh-4.1# ls test.tar sh-4.1# tar -tf test.tar ./ecs20161207.png ./ecs.png ./ecs.xml ./rds.png ./Scree ...

  9. python 一个包中的文件调用另外一个包文件 实例

    python不同文件夹中模块的引用调用顺序,被调用的模块中①有类的 模块.类().方法()   ②无类的:模块.方法() test包中testIm.py 调用 test1包中testIm1.py中的方 ...

随机推荐

  1. 3.5Linux设备驱动--块设备(一)之概念和框架☆☆

    基本概念   块设备(blockdevice) --- 是一种具有一定结构的随机存取设备,对这种设备的读写是按块进行的,他使用缓冲区来存放暂时的数据,待条件成熟后,从缓存一次性写入设备或者从设备一次性 ...

  2. caioj1421&&hdu2167: [视频]【状态压缩】选数

    %hz大佬..这道题的状态压缩简直匪夷所思(其实是我孤陋寡闻,而且我以前的博客竟然写了这题..水啊) 嗯这题可以发现,我们可以用一个二进制表示一行的状态,1表示选0反之,可以发现行与行之间可选的范围是 ...

  3. 常用的 Nand Flash 指令如下:

    指令 功能 nand info 显示可使用的 Nand Flash nand device [dev] 显示或设定当前使用的 Nand Flash nand read  addr off  size ...

  4. rsync+inotify 实现实时同步

    inotify:这个可以监控文件系统中的添加,修改,删除,移动等事件 inotify的特性需要linux内核2.6.13以上的支持 [root@test1 inotify-tools-3.13]# u ...

  5. hdu 3503(有点小技巧的dfs(对结点加东西表示边的某些状态))

    Friends Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Sub ...

  6. Oracle 11g导出来的dmp导入到 10g的数据库(IMP-00010:不是有效的导出文件,头部验证失败)

    原文地址:http://www.cnblogs.com/alxc/archive/2011/03/25/1995279.html 因为喜欢新的东西,所以基本上电脑的开发工具都是最新的,oracle也装 ...

  7. Hibernate关联映射(多对一 --- many-to-one)

    转自:https://blog.csdn.net/fengxuezhiye/article/details/7369786?utm_source=blogxgwz9 Hibernate的关联映射关系有 ...

  8. 【191】◀▶ Powershell 命令集 Cmdlets

     Powershell 命令集 cmdlets cmdlets是Powershell的内部命令,cmdlet的类型名为System.Management.Automation.CmdletInfo,包 ...

  9. java面试(上)

    http://blog.csdn.net/jackfrued/article/details/44921941 1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: - 抽象:抽象是 ...

  10. bzoj 1178: [Apio2009]CONVENTION会议中心(少见做法掉落!)【贪心+二分】

    数组若干+手动二分一个的算法,bzoj rank8 ===============================废话分割线=================================== 我我 ...