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.
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.
Excelente aporte, muchas gracias.