#!/usr/bin/bash

if [ -f $1 ] ; then
	case $1 in
		*.tar.bz2)
			if [ "$2" ]; then
				tar xvjf $1 -C $2
			else
				tar xvjf $1
			fi
			;;
		*.tar.gz)
			if [ "$2" ]; then
				tar xvzf $1 -C $2
			else
				tar xvzf $1
			fi
			;;
		*.bz2)
			if [ "$2" ]; then
				bunzip -c $1 > $2
			else
				bunzip $1
			fi
			;;
		#*.rar)       rar x $1       ;;
		*.gz)
			if [ "$2" ]; then
				gunzip -c $1 > $2
			else
				gunzip $1
			fi
			;;
		*.tar)
			if [ "$2" ]; then
				tar xvf $1 -C $2
			else
				tar xvf $1
			fi
			;;
		*.tbz2)
			if [ "$2" ]; then
				tar xvjf $1 -C $2
			else
				tar xvjf $1
			fi
			;;
		*.tgz)
			if [ "$2" ]; then
				tar xvzf $1 -C $2
			else
				tar xvzf $1
			fi
			;;
		*.zip)
			if [ "$2" ]; then
				unzip $1 -d $2
			else
				unzip $1
			fi
			;;
		*.Z)
			if [ "$2" ]; then
				uncompress -c $1 > $2
			else
				uncompress $1
			fi
			;;
		*.7z)
			if [ "$2" ]; then
				7z x $1 -o$2
			else
				7z x $1
			fi
			;;
		*)           echo "don't know how to extract '$1'..." ;;
	esac
else
	echo "'$1' is not a valid file!"
fi
