Shell腳本解壓rpm軟件包
更新時間:2014年06月20日 10:25:53 投稿:junjie
這篇文章主要介紹了Shell腳本解壓rpm軟件包,用來解壓后提取某個包中文件,需要的朋友可以參考下
有時候需要從RPM包中提取文件,而又沒有安裝且不想安裝 rpm相關(guān)的庫和程序,此時下面這個小小的綠色腳本可以幫你達成愿望。
注:
1. 此腳本來源于 Internet,具體位置不記得了,相對于源腳本做了一點點小的改動
2. 系統(tǒng)需要安裝cpio程序(一般的系統(tǒng)都帶)
#!/bin/sh #************************************************************* # Author: Unknown, Modified by jb51.net # Filename: rpmextract.sh # Description: extrac rpm package without install # rpm related program #************************************************************* if [ $# -lt 1 ] ; then echo -e "anUsage: `basename $0` <rpm_pkg_file> n" exit 1 fi pkg=$1 if [ ! -e "$pkg" ]; then echo -e "nERR: package $pkg does not exist ! n" exit 1 fi ### check if cpio exists CPIO_VER=`cpio --version 2>/dev/null` if [ -z "$CPIO_VER" ]; then echo -e "nERR: prerequisite program cpio does not found ! n" exit 1 fi leadsize=96 o=`expr $leadsize + 8` set `od -j $o -N 8 -t u1 $pkg` il=`expr 256 * ( 256 * ( 256 * $2 + $3 ) + $4 ) + $5` dl=`expr 256 * ( 256 * ( 256 * $6 + $7 ) + $8 ) + $9` # echo "sig il: $il dl: $dl" sigsize=`expr 8 + 16 * $il + $dl` o=`expr $o + $sigsize + ( 8 - ( $sigsize % 8 ) ) % 8 + 8` set `od -j $o -N 8 -t u1 $pkg` il=`expr 256 * ( 256 * ( 256 * $2 + $3 ) + $4 ) + $5` dl=`expr 256 * ( 256 * ( 256 * $6 + $7 ) + $8 ) + $9` # echo "hdr il: $il dl: $dl" hdrsize=`expr 8 + 16 * $il + $dl` o=`expr $o + $hdrsize` dd if=$pkg ibs=$o skip=1 2>/dev/null | gunzip | cpio -idmuv || dd if=$pkg ibs=$o skip=1 2>/dev/null | bzip2 -d | cpio -idmuv
使用方法:rpmextract.sh <RPM文件>
相關(guān)文章
修改Apache配置指定php配置文件php.ini的位置方法
下面小編就為大家?guī)硪黄薷腁pache配置指定php配置文件php.ini的位置方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02
收集的55個Linux系統(tǒng)管理中常用的一些shell命令
這篇文章主要介紹了收集的55個Linux系統(tǒng)管理中常用的一些shell命令,需要的朋友可以參考下2014-12-12
Linux下的自動化構(gòu)建工具之make/makefile的用法詳解
這篇文章主要為大家詳細介紹了Linux下的自動化構(gòu)建工具之make/makefile的區(qū)別與使用,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2022-10-10

