改进版本的压缩和解压的shell脚本

时间:2023-02-03 19:45:38
#!/bin/bash

if [ -d $1 ]; then

if [ -z $2 ]

then

tar czvf $1.tar.gz $1

echo this is a DIR

exit 0;

else

if [ $2 = "-t" ] ; then

tar czvf $1-$(date +%m-%d-%Y).tar.gz $1

echo this is a DIR

exit 0;

fi

fi

fi

UNPACK=1

if [ ${1##*.} = bz2 ] ; then

TEMP=${1%.*}

if [ ${TEMP##*.} = tar ] ; then

tar jxvf $1

UNPACK=$?

echo This is a tar.bz2 package

else

bunzip2 $1

UNPACK=$?

echo This is a bz2 package

fi

fi

# echo ${1##*.}

if [ ${1##*.} = zip ] ; then

unzip $1

UNPACK=$?

fi

if [ ${1##*.} = rar ] ; then

rar x $1

UNPACK=$?

fi

if [ ${1##*.} = gz ] ; then

TEMP=${1%.*}

if [ ${TEMP##*.} = tar ] ; then

tar zxvf $1

UNPACK=$?

echo This is a tar.gz package

else

gunzip $1

UNPACK=$?

echo This is a gz package

fi

fi



if [ ${1##*.} = tar ] ; then

tar xvf $1

UNPACK=$?

echo This is a tar package

fi



if [ $UNPACK = 0 ] ; then

echo Success!

else

echo Maybe it is not a package or the package is damaged?

fi