Organiza tus archivos whatsapp

Pedro González Ruiz

Resumen

Este programa, de nombre organiza, le permite mantener los archivos (imágenes y vídeos) recibidos a través de whatsapp, borrando los repetidos y renombrando los resultantes. Dispone de varias opciones para conseguirlo. Debe ejecutarse en un emulador de terminal y funciona bajo el sistema operativo Linux. Está hecho en stklos, una implementación de Scheme, un dialecto de Lisp.

A continuación se muestran los pasos a seguir.

Descarga, instalación y comprobación del intérprete de Lisp

Descarga

Debe tener instalado el compilador de C para completar éste apartado. En fin, descargue los fuentes del programa en

http://www.stklos.net/download/stklos-1.10.tar.gz

o bien, esta copia

stklos-1.10.tar.gz

incluida en mi web.

Instalación

Abra un emulador de terminal, por ejemplo xterm. Sitúese en un directorio (carpeta) dentro de su propio espacio donde tenga permiso de escritura (supongamos que se llama maniobras). Copie aquí el archivo descargado, y descomprímalo, introduciendo:

pedro@servidor2:~/maniobras> tar zxvf stklos-1.10.tar.gz 
      

Mucha información saldrá en pantalla. Liste el directorio:

pedro@servidor2:~/maniobras> ls -al
total 5968
drwxr-xr-x  3 pedro users      51 feb  9 12:47 .
drwxr-xr-x 84 pedro users    4096 feb  9 11:02 ..
drwxr-xr-x 14 pedro users    4096 dic 31  2011 stklos-1.10
-rw-r--r--  1 pedro users 6097807 feb  9 12:47 stklos-1.10.tar.gz
	

Cámbiese al directorio creado por la orden tar:

pedro@servidor2:~/maniobras> cd stklos-1.10/
	

Debe leerse, básicamente, los archivos README e INSTALL. No obstante, éste tipo de programas se construyen con los siguientes pasos:

  1. Ejecute el programa de configuración configure, el cual intenta determinar el tipo de sistema que Vd. tiene y las herramientas que debe tener instaladas para que todo funcione. En pocas palabras, con el compilador de C, las librerías fundamentales para el enlazado y el mantenedor de proyectos make es suficiente para que todo vaya bien. No obstante, si algo le falta, configure se lo hará saber, lo instala y vuelva a ejecutar. En fin, introduzca:
    pedro@servidor2:~/maniobras/stklos-1.10> ./configure
    	    

    Mucha información saldrá en pantalla. Si todo ha ido bien, ésta orden finalizará con un informe, que en mi caso concreto es:

    SUMMARY
    *******
                   System:  Linux-4.1.39-56-default
                  OS nick:  LINUX_4_1
                  OS type:  unix
          Install prefix :  /usr/local
               C compiler:  gcc
        Compilation flags:  -g -O2
           Thread support:  pthreads
    System libraries used:  libffi libpcre libgmp libgc
       Compiled libraries: 
     
    If this is correct, you can just type 'make' now at your shell prompt.
    Otherwise, re-run 'configure' with correct options.
    	    
  2. En mi caso, lo que propone configure es suficiente, así que, ahora procedemos a crear el intérprete, para lo cual, entramos:

    pedro@servidor2:~/maniobras/stklos-1.10> make
    	    

    Otra vez, mucha información saldrá en pantalla. Si todo ha ido bien, debe aparecer algo parecido a las últimas líneas que a continuación se muestran:

    make[1]: Leaving directory '/home/pedro/maniobras/stklos-1.10/doc'
    make[1]: Entering directory '/home/pedro/maniobras/stklos-1.10'
    make[1]: Nothing to be done for 'all-am'.
    make[1]: Leaving directory '/home/pedro/maniobras/stklos-1.10'
    	    
  3. Por último, tenemos que instalar el programa, lo que debe hacerse como usuario root. Así pues, sin moverse del directorio en el que se encuentra, entre (para convertirse en root):

    pedro@servidor2:~/maniobras/stklos-1.10> su
    Contraseña:
    	    

    Finalmente, como root, escriba:

    servidor2:/home/pedro/maniobras/stklos-1.10 # make install
    	    

    con lo que el programa se habrá instalado en /usr/local/bin. Comprobémoslo:

    pedro@servidor2:~/maniobras/stklos-1.10> ls -al /usr/local/bin/
    	    

    Muestro las últimas líneas:

    ....
    -rwxr-xr-x 1 root root 2374160 sep 12  2016 stklos
    -rwxr-xr-x 1 root root    4603 sep 12  2016 stklos-compile
    -rwxr-xr-x 1 root root    2350 sep 12  2016 stklos-config
    -rwxr-xr-x 1 root root  113799 sep 12  2016 stklos-genlex
    -rwxr-xr-x 1 root root   51589 sep 12  2016 stklos-pkg
    -rwxr-xr-x 1 root root    1099 sep 12  2016 stklos-script
    	    

Comprobación de funcionamiento del intérprete

Asegúrese de que tiene paso para ejecutar programas en /usr/local/bin. Para ello, introduzca:

pedro@servidor2:~/maniobras> echo $PATH
/home/pedro/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
	

Observe que, en mi caso, yo lo tengo. Si no fuera así, escriba:

pedro@servidor2:~/maniobras> PATH=$PATH:/usr/local/bin
	

En un emulador de terminal (xterm, konsole, etc.), introduzca:

pedro@servidor2:~/maniobras> stklos
*   STklos version 1.10
 *  Copyright (C) 1999-2011 Erick Gallesio - Universite de Nice 
* * [Linux-4.1.27-27-default-x86_64/pthread/no-readline/utf8]
	

Si observa esto, o algo parecido, es que el intérprete se construyó bien. No obstante, para asegurarnos, hacemos unas cuantas pruebas:

stklos> (+ 1 2 3 4)
10
stklos> (expt 2 100)
1267650600228229401496703205376
stklos> (string-append "Cervantes " "escribió " "El Quijote.")
"Cervantes escribió El Quijote."
	

es decir 1 + 2 + 3 + 4 = 10 y 2^100=1267650600228229401496703205376.

Salga del programa, entrando:

stklos> (exit)
      

o bien, pulsando la combinación Ctrl-D.

Descarga, instalación y comprobación del programa

Una vez que tenemos instalado stklos, el intérprete de Lisp, y comprobado su buen funcionamiento, pasamos a hacer lo mismo con el programa.

Antes de seguir, decir que vamos a hacer una instalación local (no global), es decir, que Vd. instala el programa dentro de su propio espacio. Debe tener paso a su propio directorio bin. En mi caso:

pedro@servidor2:~/maniobras> echo $PATH
/home/pedro/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
      

Observe que yo lo tengo, pues el paso /home/pedro/bin aparece. Como siempre, si no fuera así, escriba:

pedro@servidor2:~/maniobras> PATH=$PATH:~/bin
      

Descargue:

organiza.tgz

Abra un emulador de terminal, por ejemplo xterm, y sitúese en un directorio donde tenga permiso de escritura. Descomprima aquí el archivo descargado, introduciendo:

pedro@servidor2:~/maniobras> tar zxvf organiza.tgz 
      

Liste el directorio:

pedro@servidor2:~/maniobras> ls -al
total 64
drwxr-xr-x  2 pedro users   123 feb 14 12:45 .
drwxr-xr-x 85 pedro users  4096 feb 14 12:33 ..
-rw-r--r--  1 pedro users 29439 feb 14 12:30 libreria-stklos-v2.stk
lrwxrwxrwx  1 pedro users    12 feb 14 12:32 organiza -> organiza.stk
-rw-r--r--  1 pedro users  6613 feb 14 12:29 organiza-auxiliares.stk
-rwxr-xr-x  1 pedro users  2664 feb 14 12:29 organiza.stk
-rw-r--r--  1 pedro users 10187 feb 14 12:32 organiza.tgz
      

Muévalos a su directorio personal de ejecutables, es decir:

pedro@servidor2:~/maniobras> mv libreria-stklos-v2.stk organiza organiza-auxiliares.stk organiza.stk ~/bin
      

y ya tiene instalado el programa.

Comprobación

Introduzca:

pedro@servidor2:~/maniobras> organiza
      

Debe aparecer en pantalla lo siguiente:

Uso: organiza [opciones] directorio
Opciones:
  --informe, -i                      Muestra un informe en pantalla de los archivos repetidos
  --elimina, -d                      Elimina archivos repetidos
  --renombra, -r                     Renombra los archivos
Parámetros:
  --comienzo=, -c    Establece el número de comienzo en la renumeración
  --prefijo=, -p   Prefijo en la numeración de los archivos
Ayuda:
  --help, -h                         Muestra ayuda sobre la orden
      

Manejo de programa

Suponemos que Vd. sabe cómo pasar archivos de su móvil o tableta al ordenador. Lo habitual es que lo haga a través de Windows y como organiza es un programa de Linux, el único consejo que le puedo dar es que instale en su ordenador un sistema dual Windows-Linux (en ése orden), de forma tal que la partición de Windows sea visible en Linux, es decir, que desde Linux se pueda acceder a los archivos de Windows.

Es recomendable también que sepa manejar un navegador de archivos (NA). En Linux hay muchos, por ejemplo: dolphin, krusader, pcmanfm, etc. Aunque el programa organiza borra archivos duplicados, Vd. debe borrar los que considere irrelevantes, y para ello, la utilización de un NA es crucial. Los NA saben asociar programas al tipo de archivo, de forma tal que al estar situado en uno de ellos y pulsando enter, se abre el programa adecuado. Por ejemplo, si es una imagen, se muestra dicha imagen mediante un visor de imágenes; si es un vídeo, un reproductor de vídeo, etc.

Para los ejemplos que siguen, estoy situado en el directorio

pedro@servidor2:~/maniobras>
      

de mi espacio de trabajo, y aquí he copiado un conjunto de imágenes que quiero procesar con el programa organiza. Como ciertos actos no pueden deshacerse, voy a guardar una copia de seguridad en otro directorio, de nombre maniobras2. En fin, hacemos lo siguiente:

pedro@servidor2:~/maniobras> cd
pedro@servidor2:~> mkdir maniobras2
pedro@servidor2:~> cd maniobras2/
pedro@servidor2:~/maniobras2> cp ~/maniobras/* .
pedro@servidor2:~/maniobras2> cd ~/maniobras
      

Listamos el directorio (muestro el principio y final del listado):

pedro@servidor2:~/maniobras> ls -al
total 96384
drwxr-xr-x  2 pedro users  28672 feb 14 13:31 .
drwxr-xr-x 85 pedro users   4096 feb 15 11:18 ..
-rw-r--r--  1 pedro users  80802 oct  2  2016 IMG-20161002-WA0002.jpg
-rw-r--r--  1 pedro users  42669 oct  8  2016 IMG-20161008-WA0003.jpg
-rw-r--r--  1 pedro users 130950 oct  8  2016 IMG-20161008-WA0008.jpg
-rw-r--r--  1 pedro users 160976 oct  8  2016 IMG-20161008-WA0009.jpg

.....

-rw-r--r--  1 pedro users 371605 feb 23  2017 IMG-20170223-WA0009.jpg
-rw-r--r--  1 pedro users 121560 feb 24  2017 IMG-20170224-WA0000.jpg
-rw-r--r--  1 pedro users 158864 feb 24  2017 IMG-20170224-WA0001.jpg
-rw-r--r--  1 pedro users 185152 feb 24  2017 IMG-20170224-WA0002.jpg
-rw-r--r--  1 pedro users 185152 feb 24  2017 IMG-20170224-WA0003.jpg
-rw-r--r--  1 pedro users 112063 feb 25  2017 IMG-20170225-WA0000.jpg
      

Contamos el número de archivos:

pedro@servidor2:~/maniobras> ls -1 |wc -l
637
      

Es decir, 637 imágenes. Veamos los repetidos (opción -i). Entramos:

pedro@servidor2:~/maniobras> organiza -i .
	....
	IMG-20170203-WA0012.jpg
	IMG-20170203-WA0014.jpg
	IMG-20170204-WA0003.jpg
		IMG-20170214-WA0002.jpg
		IMG-20170224-WA0001.jpg
	IMG-20170204-WA0004.jpg
		IMG-20170204-WA0005.jpg
		IMG-20170214-WA0003.jpg
		IMG-20170214-WA0004.jpg
		IMG-20170224-WA0002.jpg
		IMG-20170224-WA0003.jpg
	....
      

Recordamos que el punto (.) es una abreviatura del shell (intérprete de órdenes) para indicar el directorio en el que me encuentro, en éste caso ~/maniobras. El listado es extenso. El archivo original se muestra en una línea separada del margen izquierdo con un tabulador y los repetidos (si los hay) con dos. Por ejemplo, el archivo IMG-20170203-WA0014.jpg no está repetido. Sin embargo, IMG-20170204-WA0003.jpg está repetido dos veces (sin contarlo a él), y el IMG-20170204-WA0004.jpg cinco veces.

Eliminamos los repetidos (opción -d). Entramos:

pedro@servidor2:~/maniobras> organiza -d .
218 archivos borrados
      

Comprobamos:

pedro@servidor2:~/maniobras> organiza -i .
...
...
      

Ya no hay repetidos.

Renombremos los archivos (opción -r). Puede utilizar dos variables con ésta opción, que son el prefijo -p (por defecto, Foto), y el número de comienzo (por defecto, 1). Veamos algunos ejemplos:

pedro@servidor2:~/maniobras> organiza -r .
419 archivos renombrados
pedro@servidor2:~/maniobras> ls -1
Foto001.jpg
Foto002.jpg
Foto003.jpg
Foto004.jpg
....
Foto416.jpg
Foto417.jpg
Foto418.jpg
Foto419.jpg
      

Si quiere cambiar el prefijo (parámetro -p):

pedro@servidor2:~/maniobras> organiza -r -p Imagen .
419 archivos renombrados
pedro@servidor2:~/maniobras> ls -1
Imagen001.jpg
Imagen002.jpg
Imagen003.jpg
Imagen004.jpg
....
Imagen416.jpg
Imagen417.jpg
Imagen418.jpg
Imagen419.jpg
      

O el comienzo de la numeración (parámetro -c):

pedro@servidor2:~/maniobras> organiza -r -c 200 .
419 archivos renombrados
pedro@servidor2:~/maniobras> ls -1
Foto200.jpg
Foto201.jpg
Foto202.jpg
Foto203.jpg
....
Foto615.jpg
Foto616.jpg
Foto617.jpg
Foto618.jpg
      

O ambas cosas a la vez:

pedro@servidor2:~/maniobras> organiza -r -p Aniversario -c 150 .
419 archivos renombrados
pedro@servidor2:~/maniobras> ls -1
Aniversario150.jpg
Aniversario151.jpg
Aniversario152.jpg
Aniversario153.jpg
....
Aniversario565.jpg
Aniversario566.jpg
Aniversario567.jpg
Aniversario568.jpg
      

Puede hacerlo todo junto. Para ello, necesitamos restaurar las imágenes iniciales que habíamos salvado en ~/maniobras2. Asegúrese que está situado en ~/maniobras (el prompt del sistema lo muestra, pero, por si las moscas):

pedro@servidor2:~/maniobras> pwd
/home/pedro/maniobras
      

Lo borramos todo:

pedro@servidor2:~/maniobras> rm *
      

Restauramos desde ~/maniobras2:

pedro@servidor2:~/maniobras> cp ~/maniobras2/* .
      

Comprobamos:

pedro@servidor2:~/maniobras> ls -1
IMG-20161002-WA0002.jpg
IMG-20161008-WA0003.jpg
IMG-20161008-WA0008.jpg
IMG-20161008-WA0009.jpg
....
IMG-20170224-WA0001.jpg
IMG-20170224-WA0002.jpg
IMG-20170224-WA0003.jpg
IMG-20170225-WA0000.jpg
      

Contamos:

pedro@servidor2:~/maniobras> ls -1 |wc -l
637
      

Aceptamos los valores por defecto, tanto del prefijo como del número de comienzo. Entramos:

pedro@servidor2:~/maniobras> organiza -dr .
218 archivos borrados
419 archivos renombrados
      

Si ha llegado hasta aquí, ha comprendido el funcionamiento del programa. Si quiere organizar sus fotos y vídeos tiene que utilizar más cosas. Por ejemplo, imagine la siguiente situación: tiene dos directorios, cada uno de ellos con un conjunto de imágenes, y quiere unificarlos, es decir, juntar los dos en uno, eliminando repetidos e irrelevantes. Se entiende por irrelevantes, aquellos que no desea conservar.

Los repetidos los elimina el programa organiza, pero los irrelevantes los tiene que eliminar Vd. Para conseguirlo, haga lo siguiente:

  1. Sitúese en el primer directorio, llamémosle dir1, y entre:

    organiza -dr .

    Con esto, ya no tenemos repetidos. Veamos cómo tratar los irrelevantes.
  2. Con un NA (navegador de archivos), sitúese en dir1 y vaya mirando de uno en uno, borrando los irrelevantes. Yo utilizo dolphin como NA y gwenview como visor. Si tiene una imagen en gwenview que no le interesa y quiere borrarla, pulse la combinación Mayús+Supr.
  3. Cuando haya acabado, y como consecuencia del borrado, se habrán producido huecos en la numeración. Vuelva a introducir, en dir1:

    organiza -dr .

    Supongamos, que como consecuencia de esta orden, nos hemos quedado con 200 archivos (Foto001.jpg ... Foto200.jpg), sin repetidos ni irrelevantes.
  4. Haga lo mismo (pasos 1,2 y 3) en dir2, pero ahora, la última orden la cambiamos por:

    organiza -dr -c 201 .

    Es decir, uno más que donde nos quedamos antes. Por tanto, en dir2, tenemos Foto201.jpg ...
  5. Sitúese en dir1, e introduzca:

    mv -i ~/dir2/* .

    Es decir, mover todos los archivos que están en dir2 a dir1. No debe haber ningún conflicto con el movimiento de los archivos, puesto que hemos llevado cuidado con la numeración.
  6. Todos los archivos están en dir1, aunque es posible que se nos haya colado algún repetido. Volvemos a entrar:

    organiza -dr .

    y listo.

Contacto

Si desea hacer algún comentario, utilice la siguiente dirección de correo:

Pedro González Ruiz
Fecha de creación: 9 de febrero de 2018
Fecha de la última modificación: 15 de febrero de 2018

ir a la página principal