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.