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

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的位置方法

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

    下面小編就為大家?guī)硪黄薷腁pache配置指定php配置文件php.ini的位置方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • Linux?screen命令使用示例

    Linux?screen命令使用示例

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

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

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

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

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

    Bash腳本中括號和反引號的使用

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

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

    git 現(xiàn)在的火爆程度非同一般,它被廣泛地用在大型開源項目,團隊開發(fā),以及獨立開發(fā)者,甚至學生之中。這篇文章給大家介紹一些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)計信息,本文將給大家詳細的介紹一下Linux free命令的使用方法,需要的朋友可以參考下
    2023-08-08
  • Shell中${}的多種用法小結(jié)

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

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

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

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

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

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

最新評論

启东市| 筠连县| 江陵县| 双鸭山市| 汝州市| 海安县| 宁夏| 瑞安市| 杭州市| 阳信县| 象州县| 万盛区| 安多县| 平塘县| 马尔康县| 谢通门县| 沿河| 兴文县| 修水县| 远安县| 新民市| 井研县| 永福县| 平舆县| 固镇县| 锡林郭勒盟| 灵川县| 鄯善县| 彭山县| 台安县| 大冶市| 洱源县| 新乡县| 葫芦岛市| 田阳县| 育儿| 珲春市| 克拉玛依市| 会泽县| 区。| 苍南县|