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
# 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

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.