金融其它cpio

求助cpio的用法及技巧

求助cpio的用法及技巧?先谢谢老师了。
参与10

10同行回答

himyamigoshimyamigos科研管理中国南方电网有限责任公司
cpio多数与管道符利用,如find 、ls等的直接打包,不知道cpio用什么压缩比较好,gzip压出来的包比cpio的包要大的多啊?有谁能谈谈gzip等压缩原理吗?显示全部
cpio多数与管道符利用,如find 、ls等的
直接打包,不知道cpio用什么压缩比较好,gzip压出来的包比cpio的包要大的多啊?
有谁能谈谈gzip等压缩原理吗?收起
事业单位 · 2010-09-12
浏览1142
yulu4314yulu4314技术支持长春
这个能把cpio包揭开能用就好了,不需要深入弄它吧显示全部
这个能把cpio包揭开能用就好了,不需要深入弄它吧收起
系统集成 · 2010-07-09
浏览1191
reecolereecole专业技术支持人员北京环亚时代信息技术有限公司
一直对这个命令不熟显示全部
一直对这个命令不熟收起
IT分销/经销 · 2010-01-18
浏览1152
qugongliqugongli软件开发工程师神码
学习了!显示全部
学习了!收起
互联网服务 · 2010-01-13
浏览1150
dxwwpdxwwp其他xf
本论坛中相关资料多的很,希望lz多看看基础。cpio 命令用途把文件复制进出归档存储器及目录。该文档描述了 AIX® cpio 命令和 System V cpio 命令。语法cpio -o [  a ] [  c ] [ -E{force|ignore|warn} ] [ -U ] [  v ] [  B | C...显示全部
本论坛中相关资料多的很,希望lz多看看基础。

cpio 命令
用途
把文件复制进出归档存储器及目录。该文档描述了 AIX® cpio 命令和 System V cpio 命令。

语法
cpio -o [  a ] [  c ] [ -E{force|ignore|warn} ] [ -U ] [  v ] [  B | C Value ] Output

cpio -i [  b ] [  c ] [  d ] [ -E{force|ignore|warn} ] [ f ] [  m ] [ M ] [ r ] [ s ] [ t ] [ -U ] [  u ] [ v ] [  S ] [ 6 ] [  B | C Value ] [  Pattern... ]
cpio -p [  a ] [  d ] [ -E{force|ignore|warn} ] [  l ] [  m ] [  M ] [ -U ] [  u ] [  v ] Directory
描述
注意: 如果您将输出从 cpio 命令重定向到一个特殊文件(设备),则应该将输出重定向到一个原始设备而不是一个块设备。因为写块设备是异步地完成的,没有办法知道是否到达了设备的末端。
注:
由于 XPG/4 和 POSIX.2 标准的限制,当文件的大小超过 2GB 时 cpio 命令不启用。
cpio 不保存任何稀疏分配的文件的稀疏特性。任何在恢复前原本稀疏的文件将在文件系统中根据大小分配所有的空间。
cpio -o 命令
cpio -o 命令从标准输入中读出文件路径名并且把这些文件连同路径名和状态信息复制到标准输出中。避免给予 cpio 命令由许多唯一链接的文件组成的路径名,因为可能没有足够的存储器来跟踪它们,并可能会导致链接信息的丢失。

cpio -i 命令
cpio -i 命令从标准输入中读入一个由 cpio -o 命令创建的归档,并且从中复制和 Pattern 参数相匹配的文件连同名称。这些文件被复制进当前目录树中。您可以列出多个的 Pattern 参数,通过使用 ksh 命令中描述的文件名符号表示法。注意在这个应用程序中,特殊字符 * (星号),? (问号),和 [...] (方括号和省略号)除了在 ksh 命令中描述的使用,还匹配路径名中的 / (斜杠)。 Pattern 参数的缺省值是 * (星号),即选择输入中所有文件。在表达式例如 [a-z] 中,减号意味着根据当前的整理序列贯穿。

一个整理序列可以定义字符范围中使用的同等类。

cpio -p 命令
cpio -p 命令从标准输入中读入文件路径名并且把这些文件复制到由 Directory 参数指定的目录中。指定的目录必须已经存在。如果这些路径名包括了不存在的目录名,您必须用 d 标志来创建指定的目录。

注:
仅当您有 root 用户权限时,您才可以复制特殊文件。
cpio -U 命令
对于 AIX 5.3,cpio 命令在缺省情况下将忽略扩展属性。-U 选项通知 cpio 以归档或复原属性(包括 ACL)。

对于 cpio 归档文件中的扩展属性条目,将需要新的记录类型。对于 cpio 归档文件中的 ACL 条目也需要新的记录类型。

cpio 归档中的每个对象都包含带有指定对象的数据的 cpio 报头。

下表描述了 cpio 报头:

字段名称 大小(字节数量) 使用
h_magic 2 用于识别报头的幻数。
h_dev 2 包含该文件的目录条目的设备。
h_ino 2 将输入文件识别为文件系统的索引节点号。
h_mode 2 输入文件的方式(如在 mode.h 文件中定义)。POSIX 标准具有 0130000、0150000 - 0170000 可用于不会传送到其他系统的文件类型。
h_uid 2 输入文件所有者的用户标识。
h_gid 2 输入文件所有者的组标识。
h_nlink 2 连接到输入文件的链接数量。
h_rdev 2 从中取出输入文件的远程设备的标识。
h_mtime 4 数据最后修改的时间。
h_namesize 2 包含 NULL 的路径名的长度。
h_filesize 4 文件长度(以字节计)。
h_name PATH_MAX 以 Null 结束的路径名。

每个具有 ACL 的文件将具有紧贴对象本身之前的 对象,该对象描述 ACL 如下:

ACL 报头
h_mode 字段设置为 0130000 显示报头描述 ACL。另外,h_mode 位设置为显示谁可以对 ACL 进行写操作。cpio 报头中的所有其他字段都设置为用于拥有 ACL 的文件的索引节点。
数据
数据将为 ACL 本身。第一个 64 位数据将为 ACL 类型。紧跟它的将是 ACL 值。
每个扩展属性在归档中将具有单一 对象,该对象完整地描述了扩展属性,如下所示:

EA 报头
h_mode 字段设置为 0150000 显示扩展属性报头。cpio 报头中的所有字段都设置为用于扩展属性的索引节点。除 h_name 字段设置为 以外
数据:
这格式化为描述扩展属性的所有者以及扩展属性的数据。eaHeader 后跟有扩展属性的所有者的路径名,随后是扩展属性数据。
struct eaHeader {
        char        pathLen[12];
        char        dataLen[12];
};


参数

Directory 指定目录。
>Output 指定输出设备,例如磁盘或者文件。如想获得更多关于使用磁带设备的信息,请参考 rmt 特殊文件。
Pattern 指定命令使用的方式(如同 ksh 命令中描述的)。Pattern 参数的缺省值是 * (星号),即选择 Input 中所有的文件。

标志
所有的标志都必须列在一起,中间没有空格。以下 -o 、-i 和 -p 标志不是所有的都可以一起使用。

a 源文件的访问时间重新设置为先前的时间。
b 交换字节和半字。

注: 正在处理的文件中如果有奇数个字节或者半字,那么数据会丢失。
B 执行使用 512 字节的块输入输出到一个记录。

注:当使用 B 或 C 选项来抽取或是创建一个磁带归档时,块因子数必须是该磁带设备的物理块大小的倍数。
当使用 B 或 C 选项从磁带抽取一个归档时,块因子数必须不大于归档在磁带上的大小。

B 标志和 C 标志是相互排斥的。如果把两者列在一起,那么 cpio 命令将使用标志列表中的后者。

c 以 ASCII 字符的形式读写头信息。如果 cpio 归档是使用 c 标志创建的,它必须使用 c 标志来抽取。
CValue 执行由 Value 参数定义的 512 字节的倍数个字节到一个记录的块输入输出。例如,-C2 标志改变块输入输出到记录的大小为 1024 字节。
d 创建需要的目录。
-E -E 选项需要下列参数中的一个。如果您省略了 -E 选项,则 warn 是缺省的 cpio 行为。
force
如果文件的范围属性不能保存,对文件的抽取或者复制操作就会失败。
ignore
在保存范围属性时忽略任何错误。
warn
如果文件的空间保留或者固定范围大小无法保存,就发出一个警告。这是缺省的行为。  
f 复制除了匹配 Pattern 参数的所有文件。
l 任何可能的时候,链接文件而不是复制他们。这个标志只可以和 cpio -p 命令一起使用。
m 保留先前的文件修改时间。这个标志在复制目录时不起作用。
M 即使目录被复制,保留先前文件的修改时间。
r 交互式重命名文件。如果您不想更改文件名,则输入单个句点或者按 键。在后一种情况下,cpio 命令不复制那个文件。
s 交换字节。这个标志只和 cpio -i 命令一起使用。

注: 如果正在处理的文件中有奇数个字节,数据可能丢失。
S 交换半字。这个标志只有在 cpio -i 命令中可用。

注: 如果正在处理的文件中有奇数个半字,数据可能丢失。
t 创建一个目录。这个操作不复制任何文件。
-U 执行 ACL 和扩展属性的归档和抽取。属性还包括访问控制表(ACL)。如果目标文件系统上不支持 ACL 类型,则它将转换为受目标文件系统支持的 ACL 类型。如果在文件系统上不支持 EA,则它将不被复制。
u 无条件复制。旧文件用同样的名字取代新文件。
v 列出文件名。如果和 t 标志一起使用,输出看起来和 ls -l 命令相似。
6 处理一个旧文件(例如,一个以 UNIX® 第六版格式写的文件)。这个标志只和 cpio -i 命令一起使用。

退出状态
该命令返回以下退出值:

0 成功完成。
>0 发生错误。

示例
要将文件复制到磁盘上,输入

cpio -ov /dev/rfd0
以压缩格式将带有 filenames 文件中列出的路径名的文件复制到软盘(>/dev/rfd0)。v 标志使得 cpio 命令显示它所复制的每一个文件的名字。这个命令在复制文件的备份时有用。磁盘必须已经格式化,但不必包含一个文件系统或已被安装。


注:uid 和 gid 的大小超过 65535 的文件不能用 cpio 命令归档。在这种情况下,使用者应该使用 backup 和 restore。
把当前目录中的文件复制到磁盘上,请输入:

ls *.c | cpio -ov >/dev/rfd0
复制当前目录中所有名字以 .c 结尾的文件。

要复制当前目录和所有的子目录到磁盘上,请输入:

find . -print | cpio -ov >/dev/rfd0
这将保存以当前目录(.)开始的目录树,并且包含它的所有子目录和文件。输入这个命令会更快:

find . -cpio /dev/rfd0 -print
-print 条目显示每一个被复制的文件的名字。

要用 cpio 命令列出已经保存到磁盘上的文件,请输入:

cpio -itv 这显示先前保存到 /dev/rfd0 的,cpio 命令格式的文件的目录。这个清单和 ls -l 命令生成的长目录清单相似。只列出文件路径名,只要使用 -it 标志。

要从磁盘复制先前用 cpio 命令保存的文件,请输入:

cpio -idmv 这将把先前用 cpio 命令保存到 /dev/rfd0 文件的文件复制回文件系统(指定 -i 标志)。d 标志在目录树被保存时,允许 cpio 命令创建适合的目录。m 标志在保存文件时,保持最后的修改时间有效。v 标志使得 cpio 命令显示每一个被复制的文件名。

从磁盘上复制选择的文件,请输入:
cpio -i "*.c" "*.o"
这样从磁盘上复制以 .c 或 .o 结束的文件。注意,模式 “*.c”和“*.o”必须附上引号以阻止 shell 把 *(星号)作为一个模式匹配字符。cpio 命令自己解码模式匹配字符,是一种特殊的情况。
要从磁盘复制文件时重命名文件,请输入:

cpio -ir -r 标志使得 cpio 命令询问您是否要在从磁盘复制文件前重命名每个文件。例如,消息:

Rename
询问是否要在以 prog.c 名字保存的文件被复制时给它一个新的名字。如果想重命名这个文件,输入新名字,按 Enter 键。如果想保持同样的名字,必须再次输入那个名字。要根本避免复制那个文件,按 Enter 键。

要复制目录和它的所有子目录,请输入:

mkdir /home/jim/newdir
find . -print | cpio -pdl /home/jim/newdir
这将复制当前的目录树,包括当前的目录和它的所有子目录及文件。复本放在新的 /home/jim/newdir 目录中。l 标志使得 cpio 命令在可能时链接文件而不是复制它们。


注: 对于 9348 Magnetic Tape Unit Model 12,cpio 的性能可以通过改变缺省的块大小来提高。如果想改变块大小,输入下面的命令行:

chdev -1 -a block_size=32k
要将当前目录中的文件复制到软盘上并保留与文件关联的 ACL 和 EA,请输入:
ls *.c | cpio -oUv >/dev/rfd0收起
电信设备制造商 · 2009-12-21
浏览1150
zhenzongjianzhenzongjian软件开发工程师na
参数得加对。要不就报错。显示全部
参数得加对。要不就报错。收起
互联网服务 · 2009-12-16
浏览1103
flyingerflyinger软件开发工程师IT
谢谢,学习了!显示全部
谢谢,学习了!收起
互联网服务 · 2009-12-13
浏览1212
simon_chengsimon_cheng系统运维工程师颀中科技(苏州)有限公司
这东西还是先看资料明白原理才好……显示全部
这东西还是先看资料明白原理才好……收起
微电子/半导体 · 2009-11-14
浏览1119
lwb_aixlwb_aix系统工程师重庆南华中天技术有限公司
到论坛下载一些很用的资料,仔细看看就明白了。显示全部
到论坛下载一些很用的资料,仔细看看就明白了。收起
系统集成 · 2009-11-12
浏览1109
jasurejasure技术经理CCB
cpio文件这样解开  cpio -idcmv < file.cpio显示全部
cpio文件这样解开  cpio -idcmv < file.cpio收起
政府机关 · 2009-11-12
浏览1136

提问者

罗冰点
专业技术支持人员AIX

问题状态

  • 发布时间:2009-10-30
  • 关注会员:0 人
  • 问题浏览:7983
  • 最近回答:2010-09-12
  • X社区推广