Code: Select all
#!/usr/local/bin/bash
#Descomprime un fichero
#Versión 1.0.1
#Licencia BSD
function descomprimir {
case "$1" in
*.tar)
tar xvf "$1"
;;
*tar.gz)
tar xzvf "$1"
;;
*.gz)
gzip -d "$1"
;;
*.bz2)
bzip2 -d "$1"
;;
*tar.bz2)
tar jvxf "$1"
;;
*.zip)
unzip "$1"
;;
*.lha)
lha -x "$1"
;;
*.zoo)
zoo -x "$1"
;;
*.rar)
unrar -x "$1"
;;
*)
echo "$1 es inválido, por ejemplo, use archivo.tar.gz, siempre
incluya la extensión "
exit
;;
esac
}
Esta función colocala al final de tu archivo de configuración de bash, usualmente es el .bashrc
Para usarla pongamos un ejemplo, he descargado un archivo llamado archivo.tar.gz para descomprimirlo automáticamente usas esta sintax
Code: Select all
descomprimir archivo.tar.gz
debes estar con el bash en el directorio donde esté el archivo a descomprimir.
Como agregado cabe destacar, que no es exactamente necesario colocarlo en el .bashrc, puedes asignar un alias en tu .bashrc para que lea el script de descomprimir, esté último ubicado en una carpeta del $PATH o colocando la ruta completa donde se encuentra el mismo, además, darles permisos 755.
Aspectos a considerar del post anterior:
Las llamadas a través de ${1#*.} con la comparación por ejemplo archivo.tar.gz
si el archivo tiene la configuración archivo.tar.gz, no existe problema, pero si el archivo tiene la configuración
mi.archivo.tar.gz, existe un fallo por el tipo de patrón de busqueda, con la estructura case queda resuelto.
Saludos m0li