Autor Tema: Script para ordenar las fotos en carpetas usando exiftool  (Leído 46488 veces)

JoRdi

  • Palizas oficial
  • *
  • Mensajes: 10191
Re: Script para ordenar las fotos en carpetas usando exiftool
« Respuesta #30 on: 18 ago 2010, 18:07 pm »
Buenas,

Gracias por mejorarlo, y sobre todo por compartirlo.

 q:)

Ta lu3go

tomas.senabre

  • Papá del Mes
  • Trimilenari@
  • *
  • Mensajes: 3370
    • La Mirada Hecha Pedazos
Re: Script para ordenar las fotos en carpetas usando exiftool
« Respuesta #31 on: 25 ago 2010, 20:54 pm »
Gracias por compartirlo Jotawolf  :-)
"Hay tres maneras de adquirir sabiduría: primero, por la reflexión, que es la más noble; segundo, por imitación, que es la más sencilla; y tercero, por la experiencia, que es la más amarga". Confucio

kallh

  • Bimilenari@
  • **
  • Mensajes: 2242
Re: Script para ordenar las fotos en carpetas usando exiftool
« Respuesta #32 on: 26 ago 2010, 11:54 am »
Gracias por el aporte jotawolf  :ok:

alcion

  • Veteran@
  • *****
  • Mensajes: 452
  • S.O: Debian GNU/Linux
    • El Blog de Alcion
Re: Script para ordenar las fotos en carpetas usando exiftool
« Respuesta #33 on: 10 ene 2011, 07:07 am »
¡Qué bueno el script este de ordenar por fecha! Yo tenía uno para renombrar los archivos añadiéndole la fecha de creación del fichero en la tarjeta, pero este creo que es mucho mejor que el que yo tenía.
Muchas gracias por compartirlo.

Salud!

invisible

  • Moderador
  • Palizas oficial
  • *****
  • Mensajes: 8097
    • INVItARTE
Re: Script para ordenar las fotos en carpetas usando exiftool
« Respuesta #34 on: 02 jul 2011, 13:18 pm »
Buenas,

Gracias, redy, me lo apunto para la próxima revisión de mi flujo. :-?

Bien, pues en eso estoy... :sonroja2:

Me encuentro revisando mi método de organización y estoy atascado. En estos momentos, la estructura de directorios que tengo es la que presenta redy en su script, es decir, YYYY/MM/DD_Motivo, pero me gustaría renombrar los archivos originales por YYMMDD_Motivo_###.ext, donde las almohadillas representarían la numeración de éstos. ¡Ah! otra cosa... ¿se puede forzar que la extensión vaya en minúsculas independientemente del original?

"Si quieres ver lo invisible, observa con atención lo visible."
                                                     Manuel Álvarez Bravo (1902-2002)

mmggmm

  • Comenzando
  • *
  • Mensajes: 14
Re: Script para ordenar las fotos en carpetas usando exiftool
« Respuesta #35 on: 02 ago 2011, 09:09 am »
...

Me encuentro revisando mi método de organización y estoy atascado. En estos momentos, la estructura de directorios que tengo es la que presenta redy en su script, es decir, YYYY/MM/DD_Motivo, pero me gustaría renombrar los archivos originales por YYMMDD_Motivo_###.ext, donde las almohadillas representarían la numeración de éstos. ¡Ah! otra cosa... ¿se puede forzar que la extensión vaya en minúsculas independientemente del original?



Retomo este hilo porque yo quisiera hacer lo mismo y no soy capaz. Suponía que, partiendo del script "clasifica", se podría, además de clasificar las fotos por fechas y motivo, utilizar este último, junto con algún comando de exiftool, para renombrar y clasificar las fotos de un plumazo. Yo he intentado modificar el script de redy, pero, quizá por no tener ni idea de bash, no he conseguido nada. ¿Hay alguna solución que yo no haya encontrado? Si no la hay, quizá a alguno de estos genios del bash le pique el gusanillo...
Un saludo a todos,
Marcial

redy

  • Moderador
  • Bimilenari@
  • *****
  • Mensajes: 2897
  • Gnudista
    • Esteropes El Cíclope
Re: Script para ordenar las fotos en carpetas usando exiftool
« Respuesta #36 on: 02 ago 2011, 12:55 pm »
Me encuentro revisando mi método de organización y estoy atascado. En estos momentos, la estructura de directorios que tengo es la que presenta redy en su script, es decir, YYYY/MM/DD_Motivo, pero me gustaría renombrar los archivos originales por YYMMDD_Motivo_###.ext, donde las almohadillas representarían la numeración de éstos. ¡Ah! otra cosa... ¿se puede forzar que la extensión vaya en minúsculas independientemente del original?

Por numeración ¿te refieres a la parte númerica del nombre original del archivo, o a otra cosa? ¿No te vale con el nombre original entero?

Se me está ocurriendo que si se puede hacer todo eso que dices, solo es cuestión de calcular un par de cosas antes del exiftool.

Para la extensión en minúsculas habría que guardarla en una variable, y también habría que guardar en una variable el nombre original solamente.

Código: [Seleccionar]
ext1="$( echo $j| tr [:upper:] [:lower:])"
solonombre="${NOMBRE##*/}"

Y luego se usaría algo como:
Código: [Seleccionar]
exiftool -overwrite_original \
'-Filename<DateTimeOriginal' \
        -d "$DIR/%Y/%m/%Y%m%d_${VAR:+_$VAR}_$solonombre.$ext1" \
        "${NOMBRE}.$j"

Estoy diciéndolo de memoria, así que haced los experimentos con gaseosa (o sea con copias de archivos que no os importe perder por si acaso)....
Admiro a la gente que sabe contar historias solamente con sus fotos, porque en el fondo las fotos son como los chistes; si tienes que explicarlas es que no son buenas...


invisible

  • Moderador
  • Palizas oficial
  • *****
  • Mensajes: 8097
    • INVItARTE
Re: Script para ordenar las fotos en carpetas usando exiftool
« Respuesta #37 on: 02 ago 2011, 13:15 pm »
Por numeración ¿te refieres a la parte númerica del nombre original del archivo, o a otra cosa? ¿No te vale con el nombre original entero?
Me refiero al número de orden de las fotos dentro del directorio. Yo suelo renombrar las fotos que importo desde la tarjeta desde YYMMDD_Motivo_001.ext a YYMMDD_Motivo_XXX.ext; es decir, que me olvido del nombre de archivo que le da la cámara por completo.

Se me está ocurriendo que si se puede hacer todo eso que dices, solo es cuestión de calcular un par de cosas antes del exiftool.
...
Estoy diciéndolo de memoria, así que haced los experimentos con gaseosa (o sea con copias de archivos que no os importe perder por si acaso)....
Voy a tomarme un café y hago las pruebas... ya te contaré. :asias:
"Si quieres ver lo invisible, observa con atención lo visible."
                                                     Manuel Álvarez Bravo (1902-2002)

invisible

  • Moderador
  • Palizas oficial
  • *****
  • Mensajes: 8097
    • INVItARTE
Re: Script para ordenar las fotos en carpetas usando exiftool
« Respuesta #38 on: 02 ago 2011, 13:33 pm »
...
Voy a tomarme un café y hago las pruebas... ya te contaré. :asias:

No me aclaro sobre dónde intercalar este nuevo trozo de código. A continuación pego el código del script tal y como lo tengo:

Código: [Seleccionar]
#! /bin/bash
#
#  Las siguientes dos variables pueden ser ajustadas segun tus preferencias
#
#  DIR es el directorio padera a dónde se van a mover las fotos se crearán
#  subcarpetas para el año, mes y día_Motivo. Si quieres otra estructura
#  distinta deberás modificar el comando exiftool.
#
#  EXT son las extensiones que se verán afectadas, normalmente jpg y el raw
#  de tu cámara. Ponlo en mayúsculas y en minúsculas por si acaso.
#
DIR="/home/portillobarrera/Imágenes/Archivo"
EXT="jpg JPG jpeg JPEG nef NEF orf ORF raw RAW crw CRW cr2 CR2 rw2 RW2 dng DNG"
#
VAR=$(zenity --entry --text="Motivo fotográfico")
while (( $# >= 1 )); do
   NOMBRE="${1%.*}"
   for j in $EXT; do
     if [[ -f "${NOMBRE}.$j" ]]; then
      exiftool -Artist='Luis M. Portillo Barrera [portillobarrera@lavabit.com]' -Copyright='Copyleft :) cc-by-sa
Puedes copiar, distribuir, publicar y modificar esta fotografia bajo las condiciones expresadas en http://creativecommons.org/licenses/by-sa/3.0/es/' '-Directory<DateTimeOriginal' \
        -d "$DIR/%Y/%m/%d${VAR:+_$VAR}" -overwrite_original \
        "${NOMBRE}.$j"
     fi
   done
   shift
done
"Si quieres ver lo invisible, observa con atención lo visible."
                                                     Manuel Álvarez Bravo (1902-2002)

redy

  • Moderador
  • Bimilenari@
  • *****
  • Mensajes: 2897
  • Gnudista
    • Esteropes El Cíclope
Re: Script para ordenar las fotos en carpetas usando exiftool
« Respuesta #39 on: 02 ago 2011, 15:08 pm »

No me aclaro sobre dónde intercalar este nuevo trozo de código. A continuación pego el código del script tal y como lo tengo:


Código: [Seleccionar]
#! /bin/bash
#
#  Las siguientes dos variables pueden ser ajustadas segun tus preferencias
#
#  DIR es el directorio padera a dónde se van a mover las fotos se crearán
#  subcarpetas para el año, mes y día_Motivo. Si quieres otra estructura
#  distinta deberás modificar el comando exiftool.
#
#  EXT son las extensiones que se verán afectadas, normalmente jpg y el raw
#  de tu cámara. Ponlo en mayúsculas y en minúsculas por si acaso.
#
DIR="/home/portillobarrera/Imágenes/Archivo"
EXT="jpg JPG jpeg JPEG nef NEF orf ORF raw RAW crw CRW cr2 CR2 rw2 RW2 dng DNG"
#
VAR=$(zenity --entry --text="Motivo fotográfico")
while (( $# >= 1 )); do
   NOMBRE="${1%.*}"
   for j in $EXT; do
     if [[ -f "${NOMBRE}.$j" ]]; then
      ext1="$( echo $j| tr [:upper:] [:lower:])"
      solonombre="${NOMBRE##*/}"
      exiftool -Artist='Luis M. Portillo Barrera [portillobarrera@lavabit.com]' -Copyright='Copyleft :) cc-by-sa
Puedes copiar, distribuir, publicar y modificar esta fotografia bajo las condiciones expresadas en http://creativecommons.org licenses/by-sa/3.0/es/' '-Filename<DateTimeOriginal' \
        -d "$DIR/%Y/%m/%Y%m%d_${VAR:+_$VAR}_$solonombre.$ext1" -overwrite_original \
        "${NOMBRE}.$j"
     fi
   done
   shift
done

« Última Modificación: 02 ago 2011, 15:56 pm por hombre_invisible »
Admiro a la gente que sabe contar historias solamente con sus fotos, porque en el fondo las fotos son como los chistes; si tienes que explicarlas es que no son buenas...


invisible

  • Moderador
  • Palizas oficial
  • *****
  • Mensajes: 8097
    • INVItARTE
Re: Script para ordenar las fotos en carpetas usando exiftool
« Respuesta #40 on: 02 ago 2011, 15:47 pm »
Gracias por tu ayuda,

Te cuento como van las pruebas...

Después de unas mínimas correcciones/adaptaciones:
Código: [Seleccionar]
        -d "$DIR/%Y/%m/%d${VAR:+_$VAR}/%y%m%d${VAR:+_$VAR}_$solonombre.$ext1" -overwrite_original \
        "${NOMBRE}.$j"

aún no obtengo exactamente lo que pretendo. Me mueve las fotos al directorio del día en que fueron tomadas, con el motivo, y renombra las fotos tal que así: yyMMDD_Motivo_NombreOriginal.ext.
Me gustaría sobreescribir el nombre original y colocar en su lugar la numeración como comenté antes... ¿se puede?

Gracias otra vez, :-)
"Si quieres ver lo invisible, observa con atención lo visible."
                                                     Manuel Álvarez Bravo (1902-2002)

invisible

  • Moderador
  • Palizas oficial
  • *****
  • Mensajes: 8097
    • INVItARTE
Re: Script para ordenar las fotos en carpetas usando exiftool
« Respuesta #41 on: 02 ago 2011, 15:55 pm »
...
Me gustaría sobreescribir el nombre original y colocar en su lugar la numeración como comenté antes... ¿se puede?

Casi lo tengo cambiando
Código: [Seleccionar]
      solonombre="${NOMBRE##*/}"por
Código: [Seleccionar]
      solonombre="${###}"
pero solo me pone una cifra (1) y yo quiero tres (001)... :?
"Si quieres ver lo invisible, observa con atención lo visible."
                                                     Manuel Álvarez Bravo (1902-2002)

redy

  • Moderador
  • Bimilenari@
  • *****
  • Mensajes: 2897
  • Gnudista
    • Esteropes El Cíclope
Re: Script para ordenar las fotos en carpetas usando exiftool
« Respuesta #42 on: 02 ago 2011, 16:03 pm »
Me gustaría sobreescribir el nombre original y colocar en su lugar la numeración como comenté antes... ¿se puede?

Poder se podrá, lo que pasa es que no se me ocurre cómo.  Me surgen mas complicaciones que soluciones.  :?

Admiro a la gente que sabe contar historias solamente con sus fotos, porque en el fondo las fotos son como los chistes; si tienes que explicarlas es que no son buenas...


invisible

  • Moderador
  • Palizas oficial
  • *****
  • Mensajes: 8097
    • INVItARTE
Re: Script para ordenar las fotos en carpetas usando exiftool
« Respuesta #43 on: 02 ago 2011, 16:06 pm »
Me gustaría sobreescribir el nombre original y colocar en su lugar la numeración como comenté antes... ¿se puede?

Poder se podrá, lo que pasa es que no se me ocurre cómo.  Me surgen mas complicaciones que soluciones.  :?

Eso ya está superado... al final, el discípulo :collejas: al maestro... :toma:
Solo me falta lo de las tres cifras en la numeración. :?
"Si quieres ver lo invisible, observa con atención lo visible."
                                                     Manuel Álvarez Bravo (1902-2002)

redy

  • Moderador
  • Bimilenari@
  • *****
  • Mensajes: 2897
  • Gnudista
    • Esteropes El Cíclope
Re: Script para ordenar las fotos en carpetas usando exiftool
« Respuesta #44 on: 02 ago 2011, 16:27 pm »
Eso ya está superado... al final, el discípulo :collejas: al maestro... :toma:
Solo me falta lo de las tres cifras en la numeración. :?

Lo de poner un contador ya se me había ocurrido, (aunque con ${###} no creo que funcione). ${#} es el número de parámetros pasados al script, como usamos shift se va decrementando en uno cada vez que procesamos un parámetro así que podría usarse como contador inverso.

pero ¿Como cuenta el contador desde 1 siempre que aplico el script? ¿Que pasa si luego añado más imágenes a la misma carpeta, vuelve a contar desde 1 o tiene que mirar cual es la última? Y si las fotos son de fechas distintas y por lo tanto van a carpetas distintas ¿Como sabría el contador que tiene que volver a empezar?
Admiro a la gente que sabe contar historias solamente con sus fotos, porque en el fondo las fotos son como los chistes; si tienes que explicarlas es que no son buenas...