cpioCPIO应用之蜂鸣器实验报告结果
本文目录一览:
- 1、【rpm】从rpm包中提取文件:rpm2cpio和cpio的使用
- 2、cpio命令是什么?
- 3、为什么cpio要比tar好
- 4、linux cpiogz格式怎么解压 cpio命令的使用
- 5、linux cpio 做什么用的
- 6、在linux下怎么解压cpio格式文件?
【rpm】从rpm包中提取文件:rpm2cpio和cpio的使用
rpm2cpio命令可以用于将rpm格式的文件转为cpio格式的文件。
rpm是Linux中常用的文件格式,方便了用户的安装,但没有cpio格式灵活。
c pio是用来建立,还原备份档的工具程序,它可以加入,解开cpio或tar备份档内的文件。
一个典型的例子就是安装一个在rpm中.so文件时,如果直接使用rpm安装,那么需要处理复杂的依赖关系,将rpm转为cpio,则可以方便地提取.so文件,做个软连接,就可以解决了!
# which rpm2cpio
# rpm -ql /usr/bin/rpm2cpio
# type /usr/bin/rpm2cpio
# rpm2cpio --help
# man rpm2cpio
可以看出 rpm2cpio 是内置命令,不是安装某个rpm包提供的。
# rpm2cpio package.rpm package.cpio
# which cpio
# rpm -qf /usr/bin/cpio
# yum info cpio
# cpio --help
cpio 可以从 cpio 或 tar 格式的归档包中存入和读取文件, 归档包是一种包含其他文件和有关信息的文件。
有关信息包括:文件名, 属主, 时标(timestamp), 和访问权限,归档包可以是磁盘上的 其他文件, 也可以是磁带或管道。
1. 在copy-out模式中, cpio 把文件复制到归档包中。它从标准输入获得文件名列表 (一行一个), 把归档包写到标准输出。生成文件名列表的典型方法是使用find 命令; 你可能要在 find 后面用上 -depth选项, 减少因为进入没有访问权限的目录而引起的麻烦。
2. 在copy-in模式中, cpio 从归档包里读取文件, 或者列出归档包里的内容。它从标准输入读入归档包。任何不是选项的命令行参数被视为shell的通配符模式串 (globbing pattern); 在归档包中, 只有文件名匹配这些模式串的文件才能复制出来。 和 shell 中不一样, 文件名起始处的 '.' 可以匹配模式串起始处的通配符, 文件名中的 '/' 也可以匹配通配符。 如果没有给出模式串, 那么将读出所有文件。
3. 在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 支持。"crc" 格式 类似于 "new ASCII" 格式, 同时对每个文件计算校验和。cpio 在创建归档包时算出校验和, 解开文件时进行校验。
"HPUX" 格式用于兼容 HP UNIX 的 cpio, 它用了独特的方法来保存设备文件。
"tar" 格式用以兼容 tar 程序。它不能归档文件名超过 100 个字符的文件, 也不能归档特殊文件 (块设备或字符设备)。
"POSIX.1 tar" 格式不能归档文件名超过 255 个字符的文件(小于, 除非文件名的最右边有一个 "/")。
缺省情况下, cpio 为了兼容老式的 cpio 程序, 创建 "binary" 格式的归档包,当展开归档包时, cpio 能够自动识别归档包的格式, 而且可以读取在其他字节顺序的机器上创建的归档包。
How do I extract the contents of an rpm?
How to install rpm package to non-default path?
How To Inspecting and extracting RPM package contents
cpio命令是什么?
cpio就是复制入和复制出的意思。cpio可以向一个归档文件(或单个文件)复制文件、列表,还可以从中提取文件。还有不会的请参考《linux就该这么学》,针对各种linux疑难杂症,帮助linux学习者。
为什么cpio要比tar好
2、cpio没有文件名长度的限制。确实,guntar在这一点上做过改进,允许使用长文件名(实际上是创建了一个临时文件用来保存实际的文件名),但是在非gnu的tar工具上仍然存在这个问题。 3、默认情况下,cpio保留时间戳 find . -type f -name '*.sh' -print | cpio -o | gzip sh.cpio.gz或者在Solaris上: find . -type f -name '*.sh' -print /tmp/includeme tar -cf - . -I /tmp/includeme | gzip sh.tar.gz或者用gnutar: find . -type f -name '*.sh' -print /tmp/includeme tar -cf - . --files-from=/tmp/includeme | gzip sh.tar.gz这儿有一个需要特别注意的:对于包含大量文件的列表,不能将find放在反引号(`)内,因为命令行长度会超出长度限制,因此必须使用中间文件。find和tar分开跑很明显会使得速度减慢。下面这个例子更加复杂,将一部分文件打包到一个文件中,其它部分打包到另外一个文件中:find . -depth -print /tmp/files egrep '/.sh$' /tmp/files | cpio -o | gzip with.cpio.gz egrep -v '/.sh$' /tmp/files | cpio -o | gzip without.cpio.gz在Solaris 下: find . -depth -print /tmp/files egrep '/.sh$' /tmp/files /tmp/with tar -cf - . -I /tmp/with | gzip with.tar.gz tar -cf - . -X /tmp/without | gzip without.tar.gz同样的,find和tar分开跑会使得速度变慢。创建多个中间文件也搞出了更多的混乱。gnutar稍好些,但是它的命令行参数却是不兼容的。5、如果有很多文件需要通过网络在两台机器之间复制,则可以并行的跑几个cpio。例如:find . -depth -print /tmp/files split /tmp/files for F in /tmp/files?
linux cpiogz格式怎么解压 cpio命令的使用
1、cpio是一个非常古老的归档工具,支持管理树状目录结构并可将结构信息与文件实体打包到单一文件的文档格式。cpio.gz格式的文件是cpio和gzip工具压缩而成的,可以用linux下的cpio以及gunzip命令来解压。
2、cpio经常和gzip一起使用,压缩得到的文件后缀一般为xx.cpio.gzip;
xx.cpio.gzip文件解压:
gunzip xx.cpio.gz;
得到xx.cpio文件,使用cpio命令继续解压得到源文件;
cpio -idmv ../xx.cpio;
3、相应的,打包后缀为cpio.gz的文件时,进入要打包的文件夹,运行下面命令
find ./* | cpio -H newc -o xx.cpio;
接着运行 gzip xx.cpio 即可得到 xx.cpio.gz 文件。
linux cpio 做什么用的
使用例:将当前目录下的文件备份到fd0H1440中
$ ls -1 | cpio -o fd0H1440
语法:
cpio -i[cdv] [-H format] [pattern...] [ archive]
cpio -o[cvB] [-H format] [ name-list] [ archive]
cpio -p[adm] dest-dir name-list
参数:
-a或--rest-access-time:重新设置文件的存取时间;
-A或--append:附加到已存在的备份文档中,且这个备份文档必须存放在磁盘上,而不能放置于磁带机里;
-b或--awap:此参数的效果和同时指定“-ss”参数相同;
-B:将输入/输出的区块大小改成5210Bytes;
-c:使用旧ASCII备份格式;
-C区块大小或--io-size=区块大小:设置输入/输出的区块大小,单位是Byte;
-d或--make-directories:如有需要cpio会自行建立目录;
-E范本文件或--pattern-file=范本文件:指定范本文件,其内含有一个或多个范本样式,让cpio解开符合范本条件的文件,格式为每列一个范本样式;
-f或--nonmatching:让cpio解开所有不符合范本条件的文件;
-F备份档或--file=备份档:指定备份档的名称,用来取代标准输入或输出,也能借此通过网络使用另一台主机的保存设备存取备份档;
-H备份格式:指定备份时欲使用的文件格式;
-i或--extract:执行copy-in模式,还原备份档;
-l备份档:指定备份档的名称,用来取代标准输入,也能借此通过网络使用另一台主机的保存设备读取备份档;
-k:此参数将忽略不予处理,仅负责解决cpio不同版本间的兼容性问题;
-l或--link:以硬连接的方式取代复制文件,可在copy-pass模式下运用;
-L或--dereference:不建立符号连接,直接复制该连接所指向的原始文件;
-m或preserve-modificatiON-time:不去更改文件的更改时间;
-M回传信息或--message=回传信息:设置更换保存媒体的信息;
-n或--numeric-uid-gid:使用“-tv”参数列出备份档的内容时,若再加上参数“-n”,则会以用户识别和群组识别码替代拥有者和群组名称列出文件清单;
-o或--create:执行copy-out模式,建立备份档;
-O备份档:指定备份档的名称,用来取代标准输出,也能借此通过网络使用另一台主机的保存设备存放备份档;
-p或--pass-through:执行copy-pass模式,略过备份步骤,直接将文件复制到目的目录;
-r或--rename:当有文件名称需要更改时,采用互动模式;
-R拥有者:/.所属群组或----owner拥有者:/.所属群组 在copy-in模式还原备份档,或copy-pass模式复制文件时,可指定这些备份,复制的文件的拥有者与所属群组;
-s或--swap-bytes:交换每队字节的内容;
-S或--swap-halfwords:交换每半个字节的内容;
-t或--list:将输入的内容呈现出来;
-u或--unconditional:置换所有文件,不论日期时间的新旧与否,皆不予询问而直接覆盖;
-v或--verbose:详细显示指令的执行过程;
-V或--dot:执行指令时。在每个文件的执行程序前面加上“.”号; --block-size=区块大小:设置输入/输出的区块大小,假如设置数值为5,则区块大小为2500,若设置成10,则区块大小为5120,以此类推;
--force-local:强制将备份档存放在本地主机;
--help:在线帮助;
--no-absolute-filenames:使用相对路径建立文件名称;
--no-preserve-owner:不保留文件的拥有者,谁解开了备份档,那些文件就归谁所有;
-only-verify-crc:当备份档采用CRC备份格式时,可使用这项参数检查备份档内的每个文件是否正确无误;
--quiet:不显示复制了多少区块;
--sparse:倘若一个文件内含有大量的连续0字节,则将此文件存在稀疏文件;
--version:显示版本信息。
在linux下怎么解压cpio格式文件?
"解压cpio文件 cpio -idmv filename.cpio;同样可以解压img文件: cpio-idmvfilename.img cpio 备份命令 备份:cpio -covB [file|device] 将数据备份到文件或设备上; 还原:cpio -icduv [file|device} 将数据还原到系统中
常用参数: -o :将数据copy到文件或设备上; -i :将数据从文件或设备上还原到系统中; -t :查看cpio建立的文件或设备内容; -c :一种比较新的portable format方式存储 -v :在屏幕上显示备份过程中的文件名; -B :让预设的blocks可以增加到5120bytes,默认是512bytes,这样可以使备份速度加快 -d :自动建立目录,这样还原时才不会出现找不到路径的问题 -u :更新,用较新的文件覆盖旧的文件 cpio常与find 配合使用,详细了解linux可以看下《linux就该这么学》这本书。
"
关于cpio和CPIO应用之蜂鸣器实验报告结果的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
相关文章
发表评论
评论列表
- 这篇文章还没有收到评论,赶紧来抢沙发吧~