Extract (almost) any archive type

After getting tired of trying to remember “tar xvzf”, I wrote a little script for extracting almost any file type via the linux command-line. You can copy and paste this script into a text editor like gedit and save it to “/usr/local/bin” for convenience. I called mine “untar” since it doesn’t seem to be taken. Remember to `chmod +x ` so that you can execute it. You may need to `sudo apt-get install unrar` if you don’t already have it. I’m sure you can see how to add other file types from this example.

#!/bin/sh
me=`basename $0`
if [ $# -eq 0 ]; then
    echo "usage: $me <files...>"
fi
for file in $@; do
    bn=`basename $file`
    case $file in
        *.tar)
            tar xvf $file;;
        *.tar.gz|*.tgz|*.tar.Z|*.tar.z)
            tar xvzf $file;;
        *.tar.bz2)
            tar xvjf $file;;
        *.zip)
            unzip $file;;
        *.rar)
            unrar x $file;;
        *)
            echo "$me: $bn: unkown filetype";;
    esac
done

One thought on “Extract (almost) any archive type

  1. I have to do a “tar –help” each time I need to decompress something. This really is useful. Named mine extract. Didn’t seem to be taken on cygwin.

Leave a Reply

Your email address will not be published. Required fields are marked *