Ir al contenido
Conéctate para seguir esto  
Pacman

Universal Decompress (script para descomprimir ficheros facilmente desde la terminal)

Recommended Posts

Universal Decompress es un sencillo script que permite descomprimir de forma universal diversos formatos de ficheros en GNU/Linux con un solo comando, evitando tener que acordarnos de los distintos comandos y opciones de tar rar zip...

#!/bin/bash

#Universal Decompress, Este Script sirve para descomprimir ficheros en diferentes formatos
#Copyright (C) 2013  Francisco Dominguez Lerma
#
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License
#as published by the Free Software Foundation; either version 2
#of the License, or (at your option) any later version.
#
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#GNU General Public License for more details.
#
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.


nombre=$1
nombre_extension=${nombre#*.}
version=0.1



function mostrar() {

echo ------------------------------------
echo "Tipo de archivo: $nombre_extension"
echo ------------------------------------

echo ------------------------------------
echo "Nombre de archivo: $nombre"
echo ------------------------------------

}


function comprobar() {


	if [ $error == 0 ]; then
		echo
		echo -e "\e[32mArchivos extraidos con éxito :)"
		echo -e "\e[39m"
		echo
	elif [ -z "$nombre" ]; then
		echo Debes escribir un nombre de archivo, para mostrar la ayuda escriba "ud --help"
		exit

	elif ! [ -e "$nombre" ]; then
		echo El fichero $nombre no existe, para mostrar la ayuda escriba "ud --help"
		exit
	else
		echo
		echo -e "\e[31mError al extraer los archivos :("
		echo -e "\e[39m"
		echo
	fi


}

case $nombre_extension in

      *tar.gz)
		mostrar
		tar zxf "$nombre"
	        error=$?
	        comprobar;;
      *tar.bz2)
		mostrar
  	        tar jxvf "$nombre"
	        error=$?
	        comprobar;;
      *gz)
	  	mostrar
 	        gzip -d "$nombre"
	 	error=$?
		comprobar;;
      *bz2)
                mostrar
		bzip2 -d "$nombre" 
	        error=$?
	 	comprobar;;
      *rar)
                mostrar
	        unrar x "$nombre"
	        error=$?
	        comprobar;;
      *zip)
                mostrar
	        unzip "$nombre"
	        error=$?
	        comprobar;;
      *tar)
                mostrar
                tar -xvf "$nombre"
	        error=$?
	        comprobar;;
#En esta linea es donde se deben de añadir más opciones de la construcción case con la misma estructura que los demás para añadir más formatos para descomprimir
	        
      --help)
		echo
	        echo
	        echo ---------- Ayuda ----------
	        echo
	        echo Universal Decompress le sirve para descomprimir
	        echo archivos de forma sencilla e universal
		echo
		echo El único argumento necesario es el archivo a descomprimir
		echo
		echo Ejemplo: ud mis_fotos.tar.gz
		echo
		echo ---------------------------
		echo
		echo
		exit;;
      --version)
		echo ---------------------------
		echo "Version: $version"
		echo ---------------------------;;
      *)
		error=1
		comprobar
		echo -------------------------------
		echo Formato no valido
		echo -------------------------------
		echo
		echo
		echo Este script no entiende la extensión de archivo $nombre_extension
		echo
		echo Para mostrar la ayuda escriba "ud --help"
		echo
		echo;;
 esac

También podéis descargarlo de http://sourceforge.net/projects/easydecompress/

 

El script es muy sencillo, no es nada del otro mundo pero puede ser de ayuda si en un momento dado tenéis que descomprimir por consola y no os acordais muy bien de tar, para instalarlo simplemente copiar el sh en /bin darle permisos de ejecución y listo, para usarlo:

 

ud mi_fichero.rar

ud mi_fichero.tar.gz

ud mi_fichero.tar.bz2

ud mi_ficherio.zip

 

Lo que si es importante es que el nombre incluya la extensión, ya que es lo que reconoce para descomprimirlo de una forma u otra, bueno lo dicho, espero que os sea útil.

 

Saludos

Editado por Snake

Compartir este post


Enlace al post
Compartir en otros sitios

Gracias, aunque yo uso uno más sencillito, el típico para poner en el ".bashrc"

extraer () {
    if [ -f $1 ] ; then
        case $1 in
            *.tar.bz2)   tar xvf $1        ;;
            *.tar.gz)    tar xvf $1     ;;
            *.tar.xz)    tar xvf $1     ;;
            *.tar.lzma)  tar xvf $1     ;;
            *.xz)        xz -d $1     ;;
            *.ar)        tar xvf $1     ;;
            *.lzma)      tar xvf $1     ;;
            *.tar.7z)    tar xvf $1     ;;
            *.cbz)       tar xvf $1     ;;
            *.bz2)       bunzip2 $1       ;;
            *.rar)       unar $1     ;;
            *.gz)        gunzip $1     ;;
            *.tar)       tar xvf $1        ;;
            *.tbz2)      tar xvf $1      ;;
            *.tgz)       tar xvf $1       ;;
            *.zip)       unzip $1     ;;
            *.Z)         uncompress $1  ;;
            *.7z)        7z x $1    ;;
            *)           echo "Non sei como carallo extraer '$1'..." ;;
        esac
    else
        echo "'$1' non é un ficheiro válido"
    fi
}

Compartir este post


Enlace al post
Compartir en otros sitios

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Invitado
Responder en este tema...

×   Has incluido contenido con formato.   Eliminar formato

  Sólo se permiten 75 emoticonos como máximo.

×   Tu enlace ha sido insertado automáticamente.   Deshacer y mostrar como enlace

×   Su contenido anterior ha sido restaurado.   Limpiar editor

×   No puedes pegar imágenes directamente. Súbelas a algún hosting de imágenes y pega la dirección URL

Conéctate para seguir esto  

×
×
  • Crear Nuevo...