[unpkg] Descompacte fácilmente en la consola

Tengo que admitir que soy tilín vago para descompactar en la consola. Nunca me he aprendido al 100% cuales son los parámetros u opciones que hay que pasarle a tar” para que pueda descompactarme un archivo bzip2” o de otro tipo, pero googleando hace algunos días llegué a este foro y había un post casualmente que tomé para aplicármelo y a raíz de eso, hacerle alguna que otra modificación, siempre reutilizando, nunca reinventando y agradeciendo al que hizo el aporte. Gracias, CrunchBang fórum.

En el post decía como crear en tu una función que descompactara todo tipo de archivo que ella reconociera, pero eso a mí me parecía algo complicado, y sobre todo al usuario “novel”, por lo que decidí hacer algo más fácil, un script que haga la misma función, y no sea tan difícil de entender, al final del cuento de eso de se trata el post, o no? xD

Primero que todo, debemos saber y conocer cuáles son los archivos compactados que más se usan actualmente. Los candidatos son «.tar, .bzip, .rar, .zip, .7z y .Z», así como sus combinaciones en el caso de que existan «.tar.bz2, .tar.gz» por sólo mencionar un par de ejemplos.

También debemos conocer la forma de instalarlos no importa cuál sea la distribución de GNU/Linux que usted use. En mi caso que uso Debian se hace de la siguiente manera:
apt-get install tar bzip2 gzip unrar rar p7zip-full

Ahora bien, ya tenemos los ingredientes, solo falta mezclarlos en la debida proporción para obtener el plato xD. Al script yo lo llamé unpkg”, se encuentra o yo lo dejaré en /usr/bin/”y su trabajo es descompactar todo lo que le pasemos como parámetros, es decir, que le pueden dar 2 o más archivos y él los descompactará sin ningún tipo de problema, algo así como:

unpkg onion_omelette.rar breakfast_cofee.tar.bz2 cook_recipes.7z

Veamos entonces el script:
[code] #!/bin/bash
for pkg in $*; do
if [ -f $pkg ] ; then
case $pkg in
*.tar.bz2) tar xvjf $pkg ;;
*.tar.gz) tar xvzf $pkg ;;
*.bz2) bunzip2 $pkg ;;
*.rar) rar x $pkg ;;
*.gz) gunzip $pkg ;;
*.tar) tar xvf $pkg ;;
*.tbz2) tar xvjf $pkg ;;
*.tgz) tar xvzf $pkg ;;
*.zip) unzip $pkg ;;
*.Z) uncompress $pkg ;;
*.7z) 7z x $pkg ;;
*) echo «‘$pkg’ is a packaged file? Don’t know what to do, exiting.» ;;
esac
fi
done
[/code]

¿Se dan cuenta? No hizo falta de ningún tipo explicar lo que hacía el archivo. Entonces muchachos, nos vemos en algún próximo post aquí.


7 comentarios, deja el tuyo

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   XunilinuX dijo

    Muy buen aporte!!!
    Uso el Xarchiver que hasta ahora no me dio ningun problema. Pero me guardo este script por las dudas, uno nunca sabe cuando lo puede llegar a necesitar…
    Gracias!!

  2.   luchoz dijo

    Muy útil, me va a servir mucho!

  3.   Koratsuki dijo

    Seguro, @luchoz y @XunilinuX, un tip que nunca está de más…

  4.   facer dijo

    Excelente!!! gracias

  5.   Gato dijo

    muy bueno gracias 😀

  6.   AurosZx dijo

    Es bueno tener esto a la mano 🙂 Así no se necesitan programas por separado…

  7.   Gongui dijo

    Muy bueno! Justo lo que estaba buscando 🙂