#!/usr/bin/env bash ex () { file=$1 [ -z "$file" ] && echo 'ex ' && return 1 [ ! -f "$file" ] && echo 'Invalid file: `'"$file"'`' && return 1 case "$file" in *.tar.bz2) tar xjf "$file";; *.tar.gz) tar xzf "$file";; *.bz2) bunzip2 "$file";; *.rar) unrar x "$file";; *.gz) gunzip "$file";; *.tar) tar xf "$file";; *.tbz2) tar xjf "$file";; *.tgz) tar xzf "$file";; *.zip) unzip "$file";; *.Z) uncompress "$file";; *.7z) 7z x "$file";; *.xz) unxz "$file";; *) echo 'Unknown suffix on file: `'"$file"'`'; return 1 ;; esac } ex "$@"