#!/bin/sh # credit: http://nparikh.org/notes/zshrc.txt # Usage: extract # Description: extracts archived files / mounts disk images # Note: .dmg/hdiutil is Mac OS X-specific. do_autodetect () { if file "$1" | grep -q 'Zip archive' ; then unzip "$1" else echo "'$1' is not a recognized format" fi } # first use a simple extension-based approach if [ -f "$1" ]; then case $1 in *.tar.bz2) tar -jxvf "$1" ;; *.tar.gz) tar -zxvf "$1" ;; *.bz2) bunzip2 "$1" ;; *.dmg) hdiutil mount "$1" ;; *.gz) gunzip "$1" ;; *.tar) tar -xvf "$1" ;; *.tbz2) tar -jxvf "$1" ;; *.tgz) tar -zxvf "$1" ;; *.zip) unzip "$1" ;; *.ZIP) unzip "$1" ;; *.pax) pax -r < "$1" ;; *.pax.Z) uncompress "$1" --stdout | pax -r ;; *.Z) uncompress "$1" ;; # if there is no recognized extension, try to auto-detect the file type *) do_autodetect "$1" ;; esac else echo "'$1' is not a valid file" fi