rpm2cpio命令可以用于将rpm格式的文件转为cpio格式的文件。

rpm是Linux中常用的文件格式,方便了用户的安装,但没有cpio格式灵活。

cpio是用来建立,还原备份档的工具程序,它可以加入,解开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), 和访问权限,归档包可以是磁盘上的 其他文件, 也可以是磁带或管道。

cpio 有三种操作模式:

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 能够自动识别归档包的格式, 而且可以读取在其他字节顺序的机器上创建的归档包。

#  rpm2cpio rpmfile.rpm | cpio -idmv

# rpm2cpio nginx-1.12.2-2.el7.x86_64.rpm | cpio -idmv

How do I extract the contents of an rpm?

https://stackoverflow.com/questions/18787375/how-do-i-extract-the-contents-of-an-rpm

How to install rpm package to non-default path?

https://stackoverflow.com/questions/3280696/how-to-install-rpm-package-to-non-default-path/3280728#3280728

How To Inspecting and extracting RPM package contents

https://blog.packagecloud.io/eng/2015/10/13/inspect-extract-contents-rpm-packages/

linux 提取cpio_【rpm】从rpm包中提取文件:rpm2cpio和cpio的使用相关推荐

  1. wireshark提取视频数据之RTP包中提取H264和H265

    wireshark提取视频数据之RTP包中提取H264和H265 文章目录 wireshark提取视频数据之RTP包中提取H264和H265 1 背景 2 提取前工作 3 H264视频从RTP包中提取 ...

  2. mysql src.rpm_从.src.rpm包中提取出完整的源码的方法

    1 什么是完整的源码 就是说,最初始的源码加上打了所有的patch后的源码,即最新的源码. 2 过程 2.1 从.src.rpm中提取完整的rpm工程文件 2.1.1 rpm to cpio rpm2 ...

  3. deb包一般放在linux的哪个目录下,技术|如何在 Linux 中列出通过 RPM 或者 DEB 包安装的文件...

    你是否想要了解安装包中各个文件在 Linux 系统中安装(位于)的位置?我们将在本文介绍如何列出文件的来源,或存在于某个特定包或者一组软件包中的文件. 这篇文章可以帮你轻松地找到重要的软件包文件,如配 ...

  4. linux替换jar包目录,Linux下用jar命令替换war包中的文件【转】

    问题背景:在Linux环境上的weblogic发布war包,有时候只是修改了几个文件,也要上传整个war包,这样很费时间,因此整理了一下Linux环境,更新单个文件的方法. 1.如果要替换的文件直接在 ...

  5. linux替换jar的文件,Linux下用jar命令替换war包中的文件【转】

    问题背景:在Linux环境上的weblogic发布war包,有时候只是修改了几个文件,也要上传整个war包,这样很费时间,因此整理了一下Linux环境,更新单个文件的方法. 1.如果要替换的文件直接在 ...

  6. 从bag包中提取图片和点云数据为pcd格式点云文件

    从bag包中提取图片和点云数据为pcd格式点云文件 1 开始提取bag包之前的准备工作 2 从bag包中提取图片和点云数据 首先说明一下我运行的系统环境: python2 Ubuntu18.04 RO ...

  7. unity 从apk包中提取资源

    unity 从apk包中提取资源 前提:使用本方法来提取资源有个前提就是资源没有被加密 (1)打开apk包 首先,将你的apk包重命名为zip或者rar类型的文件,然后进行解压缩,获取下面的文件 各个 ...

  8. linux替换war包中的文件,Linux zip与unzip命令:替换war包中的某个文件

    原本,想用jar命令来快速替换war包的文件的,可是,发现Ubuntu中没有装Java,懒癌发做,遂使用zip与unzip命令代替.app zip:压缩命令ide 格式: zip    [-选项]  ...

  9. 提取html string,c#从html中提取文本

    虽然之前也写过gensim库的word2vec的教程,但是对于文本分析的特征提取并不太理解.最近看了几篇scikit的外文教程,对机器学习中文本的特征提取有了一些了解. 一:背景相信有很多朋友在遇到应 ...

  10. 打包部署后无法读取jar包里的文件(实测可行,Java中读取jar包中的文件)

    打包部署后无法读取jar包里的文件 Java中读取jar包中的文件 linux中无法读取jar包中的内容(windows可以的!),如何解决 一.背景 项目中免不了需要读取文件,如果文件用绝对路径读取 ...

最新文章

  1. 我发现了个Python黑魔法,执行任意代码都会自动念上一段「平安经」
  2. 并发基础(七):Thread 类的sleep()、yeild()、join()
  3. 模式分类笔记--聚类分析算法
  4. python 监控jvm脚本
  5. 14.refresh操作
  6. python2.7无法使用pip(安装easy_install)
  7. tomcat9 启动中提示 org.apache.catalina.webresources.Cache.getResource Unable to add t
  8. 埃博拉病毒和微生物现代战争
  9. OpenShift 4 之进入到集群节点内执行sosreport收集故障信息
  10. 表达、思考和解决问题的逻辑(金字塔原理-高质量读书笔记)
  11. java类装载器原理
  12. FGUI GTween 完成事件不回调的问题
  13. Web前端的优点有哪些?为什么Web前端可以如此火爆?
  14. c语言标准库函数fputs,C 库函数
  15. 小情调的伤感空间日志分享:亲爱的、你还不懂么?
  16. 网络服务器是干什么用的
  17. 360修复服务器漏洞,360安全漏洞不需要修复怎么设置
  18. 美国依靠美元霸权, 是如何收割世界财富的?
  19. ORA-12569: TNS: 包校验和失败解决方法一例
  20. 字符图片分割研究小结(搬运、整理、分类、汇总)(自用,持续更新中)

热门文章

  1. 我上了大学,大学上了我
  2. 博客园期刊创刊号入选文章
  3. ctfshow web入门 反序列化 前篇 254-266
  4. linux操作系统之 组管理 终端命令(添加组删除组等命令)详解 简单易懂~
  5. spotlight怎么监控linux主机,详解 Spotlight on Unix 监控Linux服务器
  6. 没有拆不散的情侣!只有不努力的小三!
  7. 各种android下载资源
  8. 江苏嘉轩「永磁电机」打造绿色工厂,累计减少碳排放2668万吨
  9. 修改jsp默认打开方式
  10. 搜索引擎判断网页页面价值的标准