+ -
当前位置:首页 → 问答吧 → 自动解压器

自动解压器

时间:2004-09-09

来源:互联网

在lfs的世界里,由于接触到的都是源码。而各种源码都是各种不同的打包方式。所以把它们抓下来之后,解压是个挺麻烦的事,所以本人做了一个自动解压器,比较简单,各位如果觉得可以改进的地方,可以任意修改并加以该进。给大家享用。
代码:
做了一些修正,这个更完善些
#!/bin/sh

#能够自动识别各种压缩文件,并解开之

BASENAME=$(basename $1)

case "${1##*.}" in
 gz)
 if [ "${1:$((-6)):6}" == "tar.gz" ]
 then
 tar xvfz $1
 else
 gunzip $1
 fi
 ;;
 bz2)
 if [ "${1:$((-7)):7}" == "tar.bz2" ]
 then
 tar xvfj $1
 else
 bzcat $1 > ${BASENAME%.*}
 fi
 ;;
 tgz)
 tar xvfz $1
 ;;
 tbz)
 tar xvfj $1
 ;;
 zip) 
 mkdir ${BASENAME%.*}
 unzip $1 -d ${BASENAME%.*}
 ;;
 rar)
 mkdir ${BASENAME%.*}
 unrar x $1 ${BASENAME%.*}
 ;;
esac

作者: harold   发布时间: 2004-09-09

嗯,这个还不错。
给你加个精.

作者: 小丑奇兵   发布时间: 2004-09-09

像rar那种,unrar这软件不是每种发布版都有的吧?建议楼主搜集一套各种压缩软件的源码,做一个连发布版带这个sh在内的安装包,嘿嘿,像我等懒人就有福了。

作者: SmileOnce   发布时间: 2004-09-13

懒的,,真,有,,水平。。:):)。。。呵呵。。

作者: 晨想   发布时间: 2004-09-13

不错不错,在文件开始处再加入下面的一个判断:
if [ $# -ne 1 ] ;then
echo "Usage: `basename $0` <filename >"
exit 1
fi
这样就更完美了。

作者: hongfeng   发布时间: 2004-09-14

引用:
不错不错,在文件开始处再加入下面的一个判断:
if [ $# -ne 1 ] ;then
echo "Usage: `basename $0` <filename >"
exit 1
fi
这样就更完美了。
感谢你的建议!
我以做了一些修正,主要是我实际碰到的一些问题。能够识别目录以及文件名有空格的情况,以及一些小的完善。
代码:
#!/bin/sh
#
#AAE - Automated Archive Extractor - v$1.0
#Date: 09-09-2004
#
#
#This program can automated extracted all kinds of archive.

if [ $# -ne 1 ] ;then
 echo ""
 echo "Usage: $0 <filename>"
 exit 1
fi

BASENAME=$(basename "$1")

case ${1##*.} in
 tar)
 tar xvf "$1"
 ;;
 gz|z|Z)
 if [[ "${1:$((-6)):6}" == "tar.gz" || "${1:$((-5)):5}" == "tar.Z" ]]
 then
 tar xvfz "$1"
 else
 zcat "$1" > "${BASENAME%.*}"
 fi
 ;;
 bz2|bz)
 if [[ "${1:$((-7)):7}" == "tar.bz2" || "${1:$((-6)):6}" == "tar.bz" ]]
 then
 tar xvfj "$1"
 else
 bzcat "$1" > "${BASENAME%.*}"
 fi
 ;;
 tgz|taz)
 tar xvfz "$1"
 ;;
 tbz|tbz2)
 tar xvfj "$1"
 ;;
 zip|jar)
 mkdir -p "${BASENAME%.*}"
 unzip "$1" -d "${BASENAME%.*}"
 ;;
 rar)
 mkdir -p "${BASENAME%.*}"
 unrar x "$1" "${BASENAME%.*}"
 ;;
 *)
 echo "error: Sorry!I can't extract this Archive!"
 exit 1
 ;;

esac

作者: harold   发布时间: 2004-09-14

^_^,不错,收了。

作者: hongfeng   发布时间: 2004-09-15

68486844

作者: x675478473   发布时间: 2009-06-05

哈哈,懒得有水平。。。

作者: 老李飞刀   发布时间: 2009-06-05

参数不用这么复杂吧,xf 就可以解决大部分问题了

作者: imghch   发布时间: 2009-06-07

引用:
作者: imghch
参数不用这么复杂吧,xf 就可以解决大部分问题了
把新版tar更新了咯...

作者: xjflyttp   发布时间: 2009-06-12

要自动解压的话,可以试试sEx软件

作者: hamika   发布时间: 2009-08-16

引用:
作者: hamika
要自动解压的话,可以试试sEx软件
此乃什麼玩意?

作者: d00m3d   发布时间: 2009-08-16