#!/usr/bin/env zsh ## zsh is needed for the password. _printhelp () { cat</dev/null 2>&1 && echo "You should use atool instead." && echo _extract() { echo "[$1]" case "$1" in */*) FOLDER="${1%/*}";; *) FOLDER="." ;; esac case "$1" in *.tar*|*.tbz2|*.tbz|*.tgz|*.txz) tar xf "$1" -C "$FOLDER" ;; *.7z) 7z x "$PASS" -o"$FOLDER" "$1";; *.bz2) bunzip2 "$1" ;; *.rar) unrar x "$1" ;; *.gz) gunzip "$1" ;; *.zip) unzip "$1" ;; *.Z) uncompress "$1" ;; *.xz) unxz "$1" ;; *.exe) cabextract "$1" ;; *) case "$(file "$1")" in *7-zip*) 7z x "$PASS" -o"$FOLDER" "$1" ;; *gzip*|*bzip2*|*XZ*) tar xf "$1" -C "$FOLDER" ;; *) echo "[$1]: unrecognized archive format." ;; esac esac $OPT_DELAFTER && rm -v "$1" } for i ; do if [ -d "$i" ]; then while IFS= read -r FILE; do _extract "$FILE" done <