基本思路是建立乙個檔案,前半部分是乙個shell指令碼,後半部分則是
tar建立的壓縮檔案。shell指令碼呼叫tar解壓檔案的後半部分,再呼叫解壓後的安裝檔案。本文給出的方法比較靈活,對安裝指令碼的行數沒有要求。
先建立乙個指令碼檔案,內容如下,存為
inst_script.sh
。注意將程式中間./installer一行修改為你的程式的安裝程式位址。
注意:
檔案末尾不要新增更多的空行。
#!/bin/bashecho
""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...