Linux培训之cpio命令详解

    Cpio命令详细用法

    cpio-存取归档包中的文件

    语法Syntax

    cpio-o[-aBLuvV][-Cbufsize][-c|-Hformat][-Kvolumesize][[-Ofile[,file...]][-Mmessage]][-Pifd,ofd]

    cpio-i[-6AbBcdfkmnqrsStTuvV][-Cbufsize][[-Ifile[,file...]]

    [-Mmessage]][-Pifd,ofd][pattern...]

    cpio-p[-adlLmruvV][-Pifd,ofd]directory

    描述(DEscriptION)

    cpio可以从cpio或tar格式的归档包中存入和读取文件,归档包是一种包含其他文件和有关信息的文件。有关信息包括:文件名,属主,时标(timestamp),和访问权限。归档包可以是磁盘上的其他文件,也可以是磁带或管道。

    cpio有三种操作模式:

    在copy-out模式中,cpio把文件复制到归档包中。它从标准输入获得文件名列表(一行一个),把归档包写到标准输出。生成文件名列表的典型方法是使用find命令;你可能要在find后面用上-depth选项,减少因为进入没有访问权限的目录而引起的麻烦。

    在copy-in模式中,cpio从归档包里读取文件,或者列出归档包里的内容。它从标准输入读入归档包。任何不是选项的命令行参数被视为shell的通配符模式串(globbingpattern);在归档包中,只有文件名匹配这些模式串的文件才能复制出来。和shell中不一样,文件名起始处的'.'可以匹配模式串起始处的通配符,文件名中的'/'也可以匹配通配符。如果没有给出模式串,那么将读出所有文件。

    在copy-pass模式中,cpio把文件从一棵目录树复制到另一棵,它结合了copy-in和copy-out的操作,但不使用归档包。cpio从标准输入读取欲复制的文件名列表;目标目录作为非选项的命令行参数给出。

    cpio支持下列的归档格式:binary,oldASCII,newASCII,crc,HPUXbinary,HPUXoldASCII,oldtar,和POSIX.1tar。

    "binary"格式是过时格式,因为它保存文件信息的方法无法应用在不同体系的机器间移植。"oldASCII"格式可以跨平台使用,但是不能用于超过65536个i节点的文件系统中。"newASCII"格式可以跨平台使用,也适用于任意大小的文件系统,但不是所有版本的cpio都支持;目前只有GNU和SystemVR4的cpio支持。"crc"格式类似于"newASCII"格式,同时对每个文件计算校验和。cpio在创建归档包时算出校验和,解开文件时进行校验。"HPUX"格式用于兼容HPUNIX的cpio,它用了独特的方法来保存设备文件。

    "tar"格式用以兼容tar程序。它不能归档文件名超过100个字符的文件,也不能归档特殊文件(块设备或字符设备)。"POSIX.1tar"格式不能归档文件名超过255个字符的文件(小于,除非文件名的最右边有一个"/")。

    缺省情况下,cpio为了兼容老式的cpio程序,创建"binary"格式的归档包。当展开归档包时,cpio能够自动识别归档包的格式,而且可以读取在其他字节顺序的机器上创建的归档包。

    cpio的某些选项只能用在对应的操作模式上;参见总览小节,里面列出了什么选项可以用在什么模式上。

    选项(OPTIONS)

    -0,--null在copy-out和copy-pass模式中,认为输入的文件名以null字符结尾,而不是换行符,这样即使文件名中包含换行符,也不影响归档。GNUfind是生成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)归档格式。

    -CIO-SIZE,--io-size=IO-SIZE设置I/O块大小为IO-SIZE字节。

    -d,--make-directories在需要的地方创建开始目录。

    -EFILE,--pattern-file=FILE在copy-in模式中,从FILE中读取用于匹配文件名的模式串,FILE中的内容就象cpio的非选项参数一样看待。

    -f,--nonmatching只复制那些不匹配任何给定的模式串的文件。

    -F,--file=archive使用归档文件名,而不是标准输入或输出。如果把其他机器上的磁带机作成归档文件使用,文件名要用"HOSTNAME:"开始。主机名前面可以加上用户名和一个'@',作为访问远程磁带机的用户(如果你有这样的权限,一般在用户的~/.rhosts文件中会有这么一项)。

    --force-local和-F,-I,或-O,一起用,即使文件名中含有一个冒号,也把归档文件看作本地文件,一般说来冒号指出一个远程主机名字。

    -HFORMAT,--format=FORMAT使用归档格式FORMAT。有效的格式在下面列出,大小写均可."copy-in"模式的缺省动作是自动检测归档格式,"copy-out"的缺省格式是"bin"。

    bin老式的binary格式。

    odc老式的(POSIX.1)跨平台格式。

    newc新型(SVR4)跨平台格式,支持大于65536i节点的文件系统。

    crc 新型(SVR4)跨平台格式,并且计算校验和。

    tar老式的tar格式。

    ustarPOSIX.1tar格式,也能识别GNUtar归档文件,它们相似但不全相同。

    hpbinHPUNIX上的cpio使用的老式的binary格式。(用独特的方法储存设备文件)

    hpodcHPUNIX上的cpio使用的跨平台格式。(用独特的方法储存设备文件)

    -i,--extract进入copy-in模式。

    -Iarchive使用归档文件名,而不是标准输入。如果把其他机器上的磁带机作成归档文件,文件名要用"HOSTNAME:"开始。主机名前面可以加上用户名和一个'@',作为访问远程磁带机的用户(如果你有这样的权限,一般在用户的~/.rhosts文件中会有这么一项)。

    -k无效操作;只是用来兼容其他版本的cpio。

    -l,--link如果有可能,连接文件,而不是复制。

    -L,--dereference解除符号连接的关联(复制符号连接指向的文件,而不是连接本身)。

    -m,--preserve-modification-time当创建文件时,保留以前的文件修改时间。

    -MMESSAGE,--message=MESSAGE当备份介质(例如磁带或软盘)到达卷尾时,显示一条消息,提醒用户插入下一卷。如果MESSAGE包含字符串"%d",它被替换成当前卷号(从1开始)。

    -n,--numeric-uid-gid以详细方式(verbose)显示内容时,用数字显示UID和GID,而不是翻译成名称。

    --no-absolute-filenames在copy-in模式中,即使它们在归档包中有绝对路径名。也在当前目录中创建所有相关文件,

    --no-preserve-owner在copy-in和copy-pass模式中,不改变文件的属主关系(译注:疑为不保留);使它们属于展开它们的用户。这是普通用户的缺省行为,因此SystemV的用户不致于无意中把文件泄露(giveaway)。

    -o,--create进入copy-out模式。

    -Oarchive使用归档文件名,而不是标准输出。如果把其他机器上的磁带机作成归档文件,文件名要用"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的文件写成稀疏文件(sparsefile)。

    -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程序的版本号,然后退出。

    想必各位看了这篇文章之后一定会有所收货,若想了解更多相关知识请继续锁定希赛系统学院


转载于:https://my.oschina.net/u/2514712/blog/599311

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值