Hace 380 días
7

[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í.

COMENTARIOS PARA EL AUTOR

Koratsuki: Nadando en aguas linuxeras desde el 2001-2002 con un RedHat 7.2. He pasado por muchas distros, pero me mantengo entre Slackware y Debian. Amo la línea de comandos, el software libre y toda cultura geek asociada. Friky deathmetalero, el primero siempre en ayudar o dar ideas, programador de PHP y alguito de Python. Linux user: 445535. Actualmente Técnico en Electrónica y Administrador de Red.

  1. lector
  2. lector
  3. autor
  4. lector
  5. lector
  6. redactor
  7. lector

Dejar tu comentario

Tu dirección de correo electrónico no será publicado.

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>