Ax Archive Extract - Noah.org

Ax Archive Extract

From Noah.org

Jump to: navigation, search

ax

This is a simple little shell script that I wrote to handle most archives that I run across. You don't have e to tell it what type of decompression to use. Simply run it with the archive name as an argument:

 ax my_tarball.tar.gz
 ax my_tarball.tar.bz2
 ax my_stuf.zip

Click here to download this script: ax

#!/bin/sh
 
# This extracts the given archive. It detects gzip, bzip2, zip, tar, etc.
#
# TODO attempt to detect exploding tarballs (ones that don't create a
# subdirectory and then spew files all over the current directory).
#
#     tar tzf tarball.tar.gz | awk -F '/' '{print $1}' | uniq | wc -l
#
# A well behaved tarball should only create one directory or file in the
# current directory.
#
# $Id: ax 170 2008-01-15 11:43:33Z root $
 
OPT='xf'
FILE=$1
case "${FILE}" in
    *.zip)     unzip -lv "${FILE}" ;;
    *.tgz)     gunzip -c "${FILE}" | tar $OPT - ;;
    *.bz2)     bunzip2 -c "${FILE}" | tar $OPT - ;;
    *.tar.gz)  gunzip -c "${FILE}" | tar $OPT - ;;
    *.tar.bz2) bunzip2 -c "${FILE}" | tar $OPT - ;;
    *.tar.Z)   uncompress -c "${FILE}" | tar $OPT - ;;
    *.rar)
        UNRAR=`which unrar`
        if $?
        then
            unrar-free -x "${FILE}"
        else
            unrar x "${FILE}"
        fi
        ;;
    *)         tar $OPT ${FILE} ;;
esac
-->