You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用cpio提取RPM转储文件时,能否修改文件路径?

如何在rpm2cpio提取时重写文件路径

当然可以,有两种简单直接的方法实现路径重写:

方法1:直接用cpio的--transform选项

cpio本身支持通过--transform(简写-T)参数修改归档内的路径,它接受sed风格的替换表达式。针对你的需求,命令可以写成:

rpm2cpio $rpm | cpio -idmv --transform 's|^\./usr/local/mycompany/myapp/|./myapp/|'
  • s|原路径|新路径|是sed的替换语法,这里用|作为分隔符,避免和路径里的/冲突
  • ^符号确保只替换路径开头的匹配部分,不会误改文件名或子路径里的相同字符串

方法2:用sed预处理路径后再传给cpio

如果你更习惯用sed处理文本,也可以先修改cpio归档中的路径记录,再交给cpio提取:

rpm2cpio $rpm | sed 's|^\./usr/local/mycompany/myapp/|./myapp/|' | cpio -idmv

测试小技巧

在正式提取前,可以用cpio的t参数先预览修改后的路径,确认没问题再执行提取:

rpm2cpio $rpm | cpio -t --transform 's|^\./usr/local/mycompany/myapp/|./myapp/|'

内容的提问来源于stack exchange,提问作者artman41

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 23:47:06