圧縮されているファイルを解凍する

case文で注意することはマッチしにくい文字列を先に書くこと。
*.gzを先に書くと、*.tgz.gzがマッチしてしまう。

#!/usr/bin/sh
if [ $# -ne 1 ]; then
    echo "Usage : uncompress.sh file"
    exit 1
fi  
case $1 in
    *.tgz | *.tgz.gz)   tar xvfz $1 ;;
    *.tar.Z)            gnuzip $1
                        tar xvf `echo "$1" | sed 's/\.Z//'` ;;
    *.tar.bz2)          tar xvfj $1 ;;
    *.tar)              tar xvfz $1 ;;
    *.gz)               gnuzpi $1 ;;
    *.z)                gunzip $1 ;;
    *.bz2)              bunzip2 $1 ;;
    *)  echo "unsupported "
esac