Extraer archivos en bash con una función

Extraer archivos en bash con una función sencilla y, rápida de agregar.

Los usuarios de linux, disponemos de muchas aplicaciones con la capacidad de extraer archivos comprimidos, en diversos formatos. A veces tantos que nos puede resultar difícil recordar todos los comandos. Hoy solucionamos este problema.

Existe una función en bash, que tiene la capacidad de tomar los ejecutables de los comandos o herramientas de compresión que tengamos instaladas en nuestro linux, e iniciar y ejecutar las aplicaciones en línea de comandos sin ninguna intervención del usuario. Hablamos de extracciones.

A partir de hoy, extraer tus archivos en los formatos más habituales como: Tar.bz2, .tar.bz, .bz2, .rar, .zip y .7z, etc. No supondrá ningún problema, ni será necesario utilizar la aplicación especifica de la extensión de archivo para extraer lo que necesites. Se acabaron los problemas. Extraer archivos en bash con una función.

Funcion bash Extraer archivos

Función bash Extraer archivos

 

Extraer archivos en bash con una función

Editamos el archivo lanzador de bash (si no tienes permisos lo ejecutas con sudo).

nano ~/.bashrc

Si tienes ubuntu o debian veremos algo similar a…

# ~/.bashrc: executed by bash(1) for non-login shells.

# Note: PS1 and umask are already set in /etc/profile. You should not
# need this unless you want different defaults for root.
# PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ '
# umask 022

# You may uncomment the following lines if you want `ls' to be colorized:
# export LS_OPTIONS='--color=auto'
# eval "`dircolors`"
# alias ls='ls $LS_OPTIONS'
# alias ll='ls $LS_OPTIONS -l'
# alias l='ls $LS_OPTIONS -lA'
#
# Some more alias to avoid making mistakes:
# alias rm='rm -i'
# alias cp='cp -i'
# alias mv='mv -i'

En CentOS…

# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

Al final del archivo agrega las extensiones y llamadas que necesites, por ejemplo…

# Bash Function To Extract File Archives Of Various Types
extract () {
     if [ -f $1 ] ; then
         case $1 in
             *.tar.bz2)   tar xjf $1     ;;
             *.tar.gz)    tar xzf $1     ;;
             *.bz2)       bunzip2 $1     ;;
             *.rar)       rar x $1       ;;
             *.gz)        gunzip $1      ;;
             *.tar)       tar xf $1      ;;
             *.tbz2)      tar xjf $1     ;;
             *.tgz)       tar xzf $1     ;;
             *.zip)       unzip $1       ;;
             *.Z)         uncompress $1  ;;
             *.7z)        7z x $1    ;;
             *)           echo "'$1' cannot be extracted via extract()" ;;
         esac
     else
         echo "'$1' is not a valid file"
     fi
}

Guarda el archivo y cierra el editor. Recargamos el servicio.

source ~/.bashrc

 

Ahora mismo solo tienes que recordar el comando «extract». Tan solo debes ejecutar la siguiente sintasiss.

extract archivo.tar

Por ejemplo…

extract demo.zip

Ejemplo de salida…

root@sololinux-demo:~# extract demo.zip
Archive:  demo.zip
   creating: demo/
 extracting: demo/demo1.txt          
 extracting: demo/demo2.txt          
 extracting: demo/demo3.odt          
 extracting: demo/demo4.jpg          
 extracting: demo/demo5.png

En nuestro ejemplo veremos los archivos descomprimidos en la carpeta demo, se acabaron los problemas. Extraer archivos en bash con una función.

 

Canales de Telegram: Canal SoloLinux – Canal SoloWordpress

Espero que este artículo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales. Extraer archivos en bash con una función.

Chat de SoloLinux en Telegram

 

Una respuesta

  1. Mario
    05/11/2020

Agregar comentario