X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=ex;h=cf04ee6f2f26e93d3ac5ec30b5030a39e7b55611;hb=f0fb727480e27b66697b300d4046e8148b5623aa;hp=ff8edb77ce5e7f01441166f1209b4b00642ad6b5;hpb=af46c120676d3581ba56eff977d1c45611186178;p=small-misc-bash diff --git a/ex b/ex index ff8edb7..cf04ee6 100755 --- a/ex +++ b/ex @@ -28,9 +28,26 @@ Note: dtrx (package & command) extracts most of these plus some others." local x super for x in "$@"; do case "$x" in + # tars first, so they are higher pri than non-tar extensions + *.tar ) tar xf "$x" ;; + *.tar.bz2 | *.tbz2 ) tar xjf "$x" ;; + *.tar.gz | *.tgz ) tar xzf "$x" ;; + *.tar.xz ) tar Jxf "$x" ;; + *.xz) xz -d "$x" ;; *.7z ) 7za x "$x" ;; *.bz2 ) bunzip2 "$x" ;; - *.deb ) ar x "$x" ;; + *.deb ) + ar x "$x" + tmp=(data.tar.*) + case $tmp in + *.xz) tar xJf data.tar.xz ;; + *.gz) tar xzf data.tar.gz ;; + *) echo "error: could not find data.tar.*" >&2; exit 1 ;; + esac + tar xzf control.tar.gz + rm -f control.tar.gz + rm -f data.tar.* + ;; *.dsc) dpkg-source -x "$x" ;; *.gz ) gunzip "$x" ;; *.iso ) @@ -50,11 +67,6 @@ Note: dtrx (package & command) extracts most of these plus some others." *.r[0-9][0-9]|*.rar ) unrar x "$x" ;; *.rpm ) rpm2cpio "$x" | cpio --extract --make-directories ;; *.sfs) $super unsquashfs "$x" ;; - *.tar ) tar xf "$x" ;; - *.tar.bz2 | *.tbz2 ) tar xjf "$x" ;; - *.tar.gz | *.tgz ) tar xzf "$x" ;; - *.tar.xz ) tar Jxf "$x" ;; - *.xz) xz -d "$x" ;; *.Z ) uncompress "$x" ;; *.zip|*.xpi ) unzip "$x" ;;