This article was published 6 years ago. Due to the rapidly evolving world of technology, some concepts may no longer be applicable.

I’m not too sure where this one comes from, but I found it whilst working with Lorenzo at work. extract is a general purpose tool for uncompressing archives. No longer will you have to remember that it’s tar xzf to extract file.tar.gz, or just gunzip for file.gz, whilst it’s tar xjf for file.tar.bz2. Just type extract <file> and it’ll take care of the rest.

extract () {
  if [ -f $1 ] ; then
    case $1 in
      *.tar.bz2) tar xjf $1 ;;
      *.tar.gz) tar xzf $1 ;;
      *.bz2) bunzip2 $1 ;;
      *.rar) unrar e $1 ;;
      *.gz) gunzip $1 ;;
      *.tar) tar xf $1 ;;
      *.tbz2) tar xjf $1 ;;
      *.tgz) tar xzf $1 ;;
      *.zip) unzip "$1" ;;
      *.Z) uncompress $1 ;;
      *.7z) 7z x $1 ;;
      *) echo "'$1' cannot be extracted via extract()" ;;
    echo "'$1' is not a valid file"

Thoughts on this post

Leave a comment?