Puede usar el siguiente script de shell (lo nombré extract
y lo puse ~/bin
):
#! / bin / bash
if [$ # -lt 1]; entonces
echo "Uso:` basename $ 0` ARCHIVOS "
salida 1
fi
# Encontré la siguiente función en https://unix.stackexchange.com/a/168/37944
# que mejoré un poco. Muchas gracias a Sydo por esta idea.
extracto () {
para arg en $ @; hacer
si [-f $ arg]; entonces
case $ arg en
* .tar.bz2) tar xjf $ arg ;;
* .tar.gz) tar xzf $ arg ;;
* .bz2) bunzip2 $ arg ;;
* .gz) gunzip $ arg ;;
* .tar) tar xf $ arg ;;
* .tbz2) tar xjf $ arg ;;
* .tgz) tar xzf $ arg ;;
* .zip) descomprimir $ arg ;;
* .Z) descomprime $ arg ;;
* .rar) rar x $ arg ;; # 'rar' debe estar instalado
* .jar) jar -xvf $ arg ;; # 'jdk' debe estar instalado
*) echo "'$ arg' no se puede extraer a través de extract ()" ;;
esac
más
echo "'$ arg' no es un archivo válido"
fi
hecho
}
extraer $ @
No olvide hacer que el script sea ejecutable:
chmod +x ~/bin/extract
Uso:
extraer archivo_1 archivo_2 ... archivo_n
atool
, con el cual puede extraer / empacar múltiples formatos: vea la respuesta que le di a esta pregunta: command-line-archive-manager-extracter . Esta pregunta también es un duplicado de esa, por lo que probablemente deberían fusionarse.