#!/bin/sh # One size fits all extraction script. Handles all the major # archive file formats. Just: extract [ $# -lt 1 ] && echo "No file provided." && exit 1 case "$1" in *.tar|*.tar.*|*.tgz|*.txz) tar xvf "$1" --one-top-level;; *.xz) xz -d "$1";; *.gz) gunzip "$1";; *.gz) gunzip "$1";; *.rar|*.cbr) unrar "$1";; *.zip|*.cbz) unzip "$1" -d "$(expr "$1" : "\(.*\)\.[a-z]")";; *) printf "Unknown file type: \033[31;1m%s\033[0m\n" "$1" exit 1;; esac