linux的製作自解壓縮包,並執行程式

2021-06-18 07:35:52 字數 1489 閱讀 2638

基本思路是建立乙個檔案,前半部分是乙個shell指令碼,後半部分則是

tar建立的壓縮檔案。shell指令碼呼叫tar解壓檔案的後半部分,再呼叫解壓後的安裝檔案。本文給出的方法比較靈活,對安裝指令碼的行數沒有要求。

先建立乙個指令碼檔案,內容如下,存為

inst_script.sh

注意將程式中間./installer一行修改為你的程式的安裝程式位址

注意:

檔案末尾不要新增更多的空行。

#!/bin/bash

echo

""echo

"self extracting installer"

echo

""export

tmpdir=`

mktemp

-d/tmp/selfextract.******`

archive=`

awk'/^__archive_below__/ '$0`

tail -n+$archive$0|

tar xzv -c

$tmpdir

cdir=`

pwd`

cd$tmpdir

./installer # 改為壓縮包中安裝程式的位址

cd$cdir

rm-rf

$tmpdir

exit0 

__archive_below__

把程式的壓縮包準備好即可,假設名為myfile.tar.gz

直接使用cat命令把兩個檔案連在一起就可以了:

$ cat inst_script.sh myfile.tar.gz > myinstaller

$ chmod +x myinstaller

下面給出帶注釋的**

#!/bin/bash

echo""

echo

"self extracting installer"

echo""

# 用mktemp建立乙個臨時資料夾

export

tmpdir=

`mktemp

-d/tmp

/selfextract.******

`# 找到壓縮檔案在包中的偏移量,即含__archive_below__的下一行

archive=

`awk'/^__archive_below__/ '$0`

# 解壓檔案

tail -n+

$archive$0|

tar xzv 

-c$tmpdir

cdir=

`pwd` cd

$tmpdir .

/installer   

# 改為壓縮包中安裝程式的位址 cd

$cdir rm

-rf$tmpdir

exit0

__archive_below__

原文:

Linux常見壓縮包解壓縮

對於.tar結尾的檔案 tar xf all.tar對於.gz結尾的檔案 gzip d all.gz gunzip all.gz對於.tgz或.tar.gz結尾的檔案 tar xzf all.tar.gz tar xzf all.tgz對於.bz2結尾的檔案 bzip2 d all.bz2 bunz...

linux 解壓縮包方式

1.以.a為副檔名bai的檔案 tar xv file.a 2.以.z為副檔名的檔案 uncompress file.z 3.以.gz為副檔名的檔案 gunzip file.gz 4.以.bz2為副檔名的檔案 bunzip2 file.bz2 5.以.tar.z為副檔名的檔案 tar xvzf fi...

使用ant解壓縮包 打壓縮包

需要用到的jar包 ant.jar 1 解壓縮包 解壓指定zip檔案 param unzipfile 需要解壓縮的壓縮包路徑 路徑 名稱 字尾名 param destfile 解壓到的目錄 public void uncompress file unzipfile,file destfile els...