#!/bin/bash set -e for arch in "$@"; do case "$arch" in *.tar) D="`basename "$arch" .tar`"; U="tar -x -v -f"; ;; *.tar.gz) D="`basename "$arch" .tar.gz`"; U="tar -x -z -v -f"; ;; *.tgz) D="`basename "$arch" .tgz`"; U="tar -x -z -v -f"; ;; *.tar.Z) D="`basename "$arch" .tar.Z`"; U="tar -x -Z -v -f"; ;; *.tar.z) D="`basename "$arch" .tar.z`"; U="tar -x -Z -v -f"; ;; *.tar.bz2) D="`basename "$arch" .tar.bz2`"; U="tar -x -j -v -f"; ;; *.zip) D="`basename "$arch" .zip`"; U="unzip"; ;; *.rar) D="`basename "$arch" .rar`"; U="unrar x"; ;; esac if [[ -z "$FORCE_EXTRACT" ]]; then echo "extract $arch to $PWD/$D/?" read foo else echo "extracting $arch to $PWD/$D/" fi mkdir -p "$D" archive=$( realpath "$arch" ) pushd "$D" $U "$archive" popd done sleep 1