Linux培训之cpio命令详解

    Cpio命令详细用法shell

    cpio-存取归档包中的文件app

    语法Syntax测试

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

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

    [-Mmessage]][-Pifd,ofd][pattern...]命令行

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

    描述(DEscriptION)orm

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

    cpio有三种操做模式:ci

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

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

相关文章
相关标签/搜索