## Extract Function extract() { if [ ! -f "$1" ]; then printf '"%s" is not a valid file.' "$1" exit 1 fi case $1 in *.tar.bz2) tar xjf "$1" ;; *.tar.gz) tar xzf "$1" ;; *.bz2) bunzip2 "$1" ;; *.rar) unrar x "$1" ;; *.gz) gunzip "$1" ;; *.tar) tar xf "$1" ;; *.tbz2) tar xjf "$1" ;; *.tgz) tar xzf "$1" ;; *.zip) unzip "$1" ;; *.Z) uncompress "$1" ;; *.7z) 7z x "$1" ;; *.deb) ar x "$1" ;; *.tar.xz) tar xf "$1" ;; *) printf 'cannot extract "%s" with extract()' "$1" ;; esac }