Advertisement
vedranvinko

extract

Feb 24th, 2015
411
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 0.62 KB | None | 0 0
  1. extract() {
  2.     if [ -f $1 ] ; then
  3.       case $1 in
  4.         *.tar.bz2)   tar xjf $1     ;;
  5.         *.tar.gz)    tar xzf $1     ;;
  6.         *.bz2)       bunzip2 $1     ;;
  7.         *.rar)       unrar e $1     ;;
  8.         *.gz)        gunzip $1      ;;
  9.         *.tar)       tar xf $1      ;;
  10.         *.tbz2)      tar xjf $1     ;;
  11.         *.tgz)       tar xzf $1     ;;
  12.         *.zip)       unzip $1       ;;
  13.         *.Z)         uncompress $1  ;;
  14.         *.7z)        7z x $1        ;;
  15.         *)     echo "'$1' cannot be extracted via extract()" ;;
  16.          esac
  17.      else
  18.          echo "'$1' is not a valid file"
  19.      fi
  20. }
  21.  
  22. #! /usr/bin/env bash
  23.  
  24. declare -A EXTENSION_DICT=( [tar.xz]="kxJf" [txz]="kxJf" [tar.bz2]="kxjf"
  25.                 [tar.bz]="kxjf" [tar.gz]="kxzf"
  26.                             [tgz]="kxzf" [tbz]="kxjf"
  27.                             [tbz2]="kxjf" [tb2]="kxjf" )
  28.  
  29. function extract_archive(){
  30.   read file extension <<<$(echo $1 $2)
  31.   echo "extracting $file to ${file%$extension}"
  32.   eval "tar ${EXTENSION_DICT[$extension]} $file"
  33. }
  34.  
  35. for file in $*
  36. do
  37.   case "$file" in
  38.     *tar.xz)
  39.       extract_archive $file "tar.xz"
  40.       ;;
  41.  
  42.     *tar.bz2)
  43.       extract_archive $file "tar.bz2"
  44.       ;;
  45.  
  46.     *tar.bz)
  47.       extract_archive $file "tar.bz"
  48.       ;;
  49.  
  50.     *tar.gz)
  51.       extract_archive $file "tar.gz"
  52.       ;;
  53.  
  54.     *tgz)
  55.       extract_archive $file "tgz"
  56.       ;;
  57.  
  58.     *tbz)
  59.       extract_archive $file "tbz"
  60.       ;;
  61.  
  62.     *tbz2)
  63.       extract_archive $file "tbz2"
  64.       ;;
  65.  
  66.     *tb2)
  67.       extract_archive $file "tb2"
  68.       ;;
  69.  
  70.     *txz)
  71.       extract_archive $file "txz"
  72.       ;;
  73.  
  74.     *)
  75.       echo "Sorry, unrecognized file format."
  76.       exit 1
  77.       ;;
  78.   esac
  79. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement