#!/bin/bash
for i in $@ ; do
   if [ -f $i ] ; then
       case $i in
           *.tar.bz2)   tar xvjf $i    ;;
           *.tar.gz)    tar xvzf $i    ;;
           *.bz2)       bunzip2 $i     ;;
           *.rar)       unrar x $i       ;;
           *.gz)        gunzip $i      ;;
           *.tar)       tar xvf $i     ;;
           *.tbz2)      tar xvjf $i    ;;
           *.tgz)       tar xvzf $i    ;;
           *.zip)       unzip $i       ;;
           *.Z)         uncompress $i  ;;
           *.7z)        7z x $i        ;;
           *.ar)        ar x $i        ;;
           *)           echo "don't know how to extract '$i'..." ;;
       esac
   else
       echo "'$i' is not a valid file!"
   fi
done
