1

Script d’extraction universel

Tout à l’heure avec trifus on a galéré pour se rappeler comment extraire du .tar.gz en ligne de commande. Je me suis donc demandé pourquoi y’avait pas bêtement un script « extract » qui ferait ça pour nous.

Et puisque Google est (toujours) mon ami, voici le script que j’ai trouvé :)

/bin/extract

J’ai enregistré ce script en tant que /bin/extract et l’ai chmod +x pour qu’il fonctionne un peu partout.

#!/bin/bash
# Extract common file formats

# Display usage if no parameters given
if [[ -z "$@" ]]; then
  echo " ${0##*/} <archive> - extract common file formats)"
  exit
fi

# Required program(s)
req_progs=(7z unrar unzip)
for p in ${req_progs[@]}; do
  hash "$p" 2>&- || \
  { echo >&2 " Required program \"$p\" not installed."; exit 1; }
done

# Test if file exists
if [ ! -f "$@" ]; then
  echo "File "$@" doesn't exist"
  exit
fi

# Extract file by using extension as reference
case "$@" in
  *.7z      ) 7z  x       "$@"                ;;
  *.tar.bz2 ) tar xvjf    "$@"                ;;
  *.bz2     ) bunzip2     "$@"                ;;
  *.deb     ) ar  vx      "$@"                ;;
  *.tar.gz  ) tar xvf     "$@"                ;;
  *.gz      ) gunzip      "$@"                ;;
  *.tar     ) tar xvf     "$@"                ;;
  *.tbz2    ) tar xvjf    "$@"                ;;
  *.tar.xz  ) tar xvf     "$@"                ;;
  *.tgz     ) tar xvzf    "$@"                ;;
  *.rar     ) unrar x     "$@"                ;;
  *.zip     ) unzip       "$@"                ;;
  *.Z       ) uncompress  "$@"                ;;
  *         ) echo " Unsupported file format" ;;
esac

Utilisation :

$ extract fichier.tar.gz

Source. Enjoy ;-)

  1. Benoit Daloze dit :

    Y’a dtrx (http://brettcsmith.org/2007/dtrx/) dans le genre qui fonctionne plutôt bien et qui évite de décompresser toute l’archive dans le répertoire courant.