一个Linux的解压脚本
来源:互联网 发布:coincola 知乎 编辑:程序博客网 时间:2024/05/22 14:02
由于老是记不住各种压缩包的解压指令,于是就把解压的通用方式写到了脚本里面(只包含了部分压缩格式的解压,可以按需求自己添加即可),现在分享出来。使用方式很简单:
unpkg.sh ./aaabbb.tar.gz即可。
把unpkg放到/usr/bin下面(或者自己修改PATH也行),并添加可执行权限即可。
#!/bin/sh# 用于解压缩# 使用例子是:# ./unpkg.sh -p *****.****# 参数:-p 后面跟压缩包### 或者直接后面跟名字# ./unpkg.sh *****.****## 作者:LeeFeng 474609810@qq.com# 时间:2014-07-07### 例如:如果PKG_NAME是123.456.789# 从开头,去掉最大匹配,得到 789# FILE_FMT=${PKG_NAME##*.}# echo "FILE_FMT = $FILE_FMT"# 从开头,去掉最小匹配,得到 456.789# FILE_FMT=${PKG_NAME#*.}# echo "FILE_FMT = $FILE_FMT"# FILE_FMT=${PKG_NAME%%*.tar.gz}# echo "FILE_FMT = $FILE_FMT"# 最小匹配# FILE_FMT=${PKG_NAME%*.tar.gz}# echo "FILE_FMT = $FILE_FMT"##B_DEBUG=0PKG_NAME=""B_HAVE_P=0# 是否有-p#遍历参数for((i=1;i<=$#;i++));doparam_value=$(eval echo \${${i}})#echo "param${i} : ${param_value}"if [ "$param_value" = "-p" ]theni_1=`expr $i + 1`;PKG_NAME=$(eval echo \${${i_1}});B_HAVE_P=1elif [ "$param_value" = "-d" ];thenB_DEBUG=1#echo "using debug"fidoneif [ $B_HAVE_P = 0 ];thenPKG_NAME=$1fi#echo "PKG_NAME = ${PKG_NAME}"# 检测if [ "$PKG_NAME" = "" ] ; thenecho "Error : program name is invalid,name is empty . use -p."exit 3fi# 确定文件的格式,从最复杂的方式开始匹配FILE_FMT=""CMD=""while truedo# 做最大匹配FILE_FMT=${PKG_NAME%%*.tar.gz}if [ "$FILE_FMT" != "$PKG_NAME" ] ; thenecho "the file format is: *.tar.gz"CMD="tar -xzf "breakfiFILE_FMT=${PKG_NAME%%*.gz}if [ "$FILE_FMT" != "$PKG_NAME" ] ; thenecho "the file format is: *.gz"CMD="gunzip "breakfiFILE_FMT=${PKG_NAME%%*.zip}if [ "$FILE_FMT" != "$PKG_NAME" ] ; thenecho "the file format is: *.zip"CMD="unzip "breakfiFILE_FMT=${PKG_NAME%%*.tar.bz2}if [ "$FILE_FMT" != "$PKG_NAME" ] ; thenecho "the file format is: *.tar.bz2"CMD="tar -xjf "breakfiFILE_FMT=${PKG_NAME%%*.tar.Z}if [ "$FILE_FMT" != "$PKG_NAME" ] ; thenecho "the file format is: *.tar.Z"CMD="tar -xZf "breakfiFILE_FMT=${PKG_NAME%%*.Z}if [ "$FILE_FMT" != "$PKG_NAME" ] ; thenecho "the file format is: *.Z"CMD="uncompress "breakfiFILE_FMT=${PKG_NAME%%*.rar}if [ "$FILE_FMT" != "$PKG_NAME" ] ; thenecho "the file format is: *.rar"CMD="unrar e "breakfiFILE_FMT=${PKG_NAME%%*.tar}if [ "$FILE_FMT" != "$PKG_NAME" ] ; thenecho "the file format is: *.tar"CMD="tar -xvf "breakfibreakdoneif [ "$CMD" = "" ];thenecho "Error : unsurported compressed file : $PKG_NAME"exit 1fi# 开始运行echo "start unpackage : $CMD $PKG_NAME"$CMD $PKG_NAMEif [ $? != 0 ] ; thenecho "unpackage faild!"exit 2fiecho "unpackage end"
0 0
- 一个Linux的解压脚本
- linux下一个好玩的自解压脚本
- linux下一个好玩的自解压脚本
- linux万能解压脚本
- linux自解压安装脚本
- linux下的智能压缩/解压bash脚本
- Linux shell脚本以单文件解压的形式解压多个文件
- Linux 一个命令解压所有的压缩存档文件
- 一个通过不同的文件扩展名来调用不同的解压程序的shell脚本
- 我们写了一个名为smartzip的脚本,该脚本可以自动解压bzip2, gzip和zip 类型的压缩文件
- 压缩文件的解压 linux
- linux的解压命令
- linux下的解压
- linux的解压命令
- linux的压缩解压
- 一个linux samba添加用户的脚本
- Linux周期运行一个命令的脚本
- 一个简单的linux脚本创建过程
- 微信token验证代码
- WebService到底是什么?
- GitHub详细教程
- Android添加新版本支持包V7后自定义ActionBar左侧有空白,不能玩全填充问题解决
- C++中怎么对野指针进行防护
- 一个Linux的解压脚本
- Java中数组、对象及其内存管理、回收
- Spring MVC静态资源处理
- Linux下自定义字符串数组作为文件名,创建文件
- Java环境变量设置
- 初学者Oracle 11g安装常见错误
- 抽象基类定义接口
- iOS 网络请求图片下载到本地相册
- syhbz 2038 小z的袜子(莫队算法)