最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Shell腳本解壓rpm軟件包

 更新時(shí)間:2014年06月20日 10:25:53   投稿:junjie  
這篇文章主要介紹了Shell腳本解壓rpm軟件包,用來(lái)解壓后提取某個(gè)包中文件,需要的朋友可以參考下

有時(shí)候需要從RPM包中提取文件,而又沒(méi)有安裝且不想安裝 rpm相關(guān)的庫(kù)和程序,此時(shí)下面這個(gè)小小的綠色腳本可以幫你達(dá)成愿望。

注:
1. 此腳本來(lái)源于 Internet,具體位置不記得了,相對(duì)于源腳本做了一點(diǎn)點(diǎn)小的改動(dòng)
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的位置方法

    修改Apache配置指定php配置文件php.ini的位置方法

    下面小編就為大家?guī)?lái)一篇修改Apache配置指定php配置文件php.ini的位置方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • Linux?screen命令使用示例

    Linux?screen命令使用示例

    Screen是一個(gè)全屏窗口管理器,它在多個(gè)進(jìn)程(通常是交互式shell)之間多路傳輸物理終端。每個(gè)虛擬終端提供DEC?VT100終端的功能,以及ANSI?X3的幾個(gè)控制功能,本文給大家分享Linux?screen命令使用示例,感興趣的朋友一起看看吧
    2023-03-03
  • ps命令輸出進(jìn)程狀態(tài)S+的含義解析

    ps命令輸出進(jìn)程狀態(tài)S+的含義解析

    這篇文章主要介紹了ps命令輸出進(jìn)程狀態(tài)S后面加號(hào)的含義,本文通過(guò)ps命令輸出說(shuō)明,感興趣的朋友跟隨小編一起看看吧
    2019-12-12
  • 一文詳解Linux?du命令的使用方法

    一文詳解Linux?du命令的使用方法

    在Linux系統(tǒng)中,du命令是一款功能強(qiáng)大且實(shí)用的工具,可用于查看文件和目錄的磁盤使用情況,本文將深入探討du命令的使用方法和一些常見(jiàn)選項(xiàng),以協(xié)助您更全面地理解和有效地管理系統(tǒng)中的存儲(chǔ)空間,需要的朋友可以參考下
    2024-02-02
  • Bash腳本中括號(hào)和反引號(hào)的使用

    Bash腳本中括號(hào)和反引號(hào)的使用

    我們經(jīng)常需要引用變量或者命令的執(zhí)行結(jié)果來(lái)作為文件的名字或者日志的輸出,本文主要介紹了Bash腳本中括號(hào)和反引號(hào)的使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Git代碼提交流程及git命令匯總(基礎(chǔ)篇)

    Git代碼提交流程及git命令匯總(基礎(chǔ)篇)

    git 現(xiàn)在的火爆程度非同一般,它被廣泛地用在大型開(kāi)源項(xiàng)目,團(tuán)隊(duì)開(kāi)發(fā),以及獨(dú)立開(kāi)發(fā)者,甚至學(xué)生之中。這篇文章給大家介紹一些Git代碼提交流程和Git基礎(chǔ)命令的使用,需要的朋友參考下吧
    2017-12-12
  • Linux命令之free命令使用詳解

    Linux命令之free命令使用詳解

    在Linux系統(tǒng)中,free命令用于顯示系統(tǒng)內(nèi)存的使用情況,它提供了系統(tǒng)內(nèi)存總量、已使用內(nèi)存、空閑內(nèi)存以及其他與內(nèi)存相關(guān)的統(tǒng)計(jì)信息,本文將給大家詳細(xì)的介紹一下Linux free命令的使用方法,需要的朋友可以參考下
    2023-08-08
  • Shell中${}的多種用法小結(jié)

    Shell中${}的多種用法小結(jié)

    ${}是一種變量替換語(yǔ)法,它用于獲取和操作變量的值,本文就來(lái)介紹一下${}的多種用法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • 收集的55個(gè)Linux系統(tǒng)管理中常用的一些shell命令

    收集的55個(gè)Linux系統(tǒng)管理中常用的一些shell命令

    這篇文章主要介紹了收集的55個(gè)Linux系統(tǒng)管理中常用的一些shell命令,需要的朋友可以參考下
    2014-12-12
  • Linux下的自動(dòng)化構(gòu)建工具之make/makefile的用法詳解

    Linux下的自動(dòng)化構(gòu)建工具之make/makefile的用法詳解

    這篇文章主要為大家詳細(xì)介紹了Linux下的自動(dòng)化構(gòu)建工具之make/makefile的區(qū)別與使用,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-10-10

最新評(píng)論

长岛县| 玉树县| 万源市| 定兴县| 石嘴山市| 宜兰市| 潮州市| 潮安县| 洛扎县| 贵港市| 高阳县| 泊头市| 太保市| 普陀区| 海门市| 区。| 兴文县| 保定市| 崇阳县| 北海市| 区。| 柳州市| 塔河县| 民县| 棋牌| 英山县| 杂多县| 偏关县| 磐石市| 石狮市| 白玉县| 江安县| 松江区| 岳普湖县| 象山县| 宜黄县| 九龙县| 珠海市| 泽普县| 石渠县| 丹棱县|