lunes, 15 de febrero de 2010

Automatizar extracción de archivos en bash


Hola, ante todo perdón por la falta de nuevos temas. Si os digo la verdad llevo un buen ritmo pero me he quedado sin temas. Os pediría que si tenéis alguna duda, aprovechéis y comentéis pidiendo temas.
En cualquier caso he estado estos días trasteando con bash, el interprete de comandos de Linux y la verdad que las cosas funcionan bastante bien.

En este caso, y como añadido al Tucan, el gestor de descargas, he programado un pequeño script que nos ayudará a extraer todos los ficheros de vídeo de una temporada descargada y copiarlos a la carpeta que deseemos. Se podría añadir el comando de eliminar carpeta pero he decidido no hacerlo porque creo que es mejor borrarlo a a mano por si algo no hubiera salido bien.

Lo primero que necesitaremos es el unrar, que es freeware, (no es software libre). Para instalarlo usaremos el siguiente comando:
  • sudo apt-get install unrar
Una vez instalado, procederemos a descargar una temporada de nuestra serie favorita por descarga directa. Tucan manager por defecto lo guarda en la carpeta descargas. Moveremos estas carpeta en una nueva y procederemos a crear el script.

Para ello abriremos el editor de textos gedit mediante el siguiente comando:
  • gedit
Copiaremos el siguiente código y lo guardaremos en el Escritorio.
extraer.sh
#!/bin/bash
for i in $( ls $HOME/Descargas/T-18/ ); do
    cd $HOME/Descargas/T-18/$i
    extrae=`find *part1.rar`
    unrar e $extrae
    copia=`find *.avi`
    mv $copia $HOME/Descargas/T-18/
    cd ..
    echo Extraído correctamente $i
done
 Dentro del for esta la carpeta de nuestra temporada. Este caso ficticio es la temporada de los Simpsons número 18. Al descargarlo nos encontramos con que son 2 partes por cada capitulo. Sólo basta con extraer la primera pues el programa automáticamente buscará la segunda, tercera etc...

Procederemos a darle los permisos mediante el siguiente comando:
  • chmod u+x $HOME/Escritorio/extraer.sh
Para ejecutarlo tan solo tendremos que ejecutar el siguiente comando:
  • $HOME/Escritorio/extraer.sh
Listo, tras esperar un ratito que es lo que tarda, tendremos nuestra temporada extraída y podremos borrar las carpetas. Un placer para vagos.

No hay comentarios:

Publicar un comentario