Page 1 of 1

Debug, Script Bash Descomprimir

Posted: Thu 04 Oct 2012, 03:20
by m0li

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
Claro siempre y cuando respetes esta regla:

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

Posted: Fri 05 Oct 2012, 23:17
by josejp2424
copiando, la m0li esta con todo.