¿Cuál es una buena aplicación para archivos y carpetas para organizar grandes cantidades de imágenes en Linux?

Tengo una colección de alrededor de 35.000 archivos JPG y 5.000 NEF. Anteriormente importé y "organicé" esta carga masiva de imágenes usando RoboImport. Se ajustaba bastante a mi flujo de trabajo, ya que podía darle casi todos los nombres posibles según los metadatos adjuntos (EXIF).

Recientemente me compré un disco duro adicional para tener como unidad de fotos principal, con el objetivo de usar el anterior como respaldo. Aproveché la oportunidad para crear un nuevo esquema de nombres separando los archivos NEF de los JPG. De esta manera, podría tener Windows Live Photo Gallery solo para la parte JPEG, evitando imágenes dobles en la galería.

Sin embargo, Roboimport siempre ha sido estable, pero con la mayor parte, los archivos NEF y JPG de mi dSLR, la aplicación se ahoga alrededor de 1/5. Se cuelga, y realmente no puedo reanudarlo, ya que no transfirió exactamente las imágenes cronológicamente.


¿Qué es una buena aplicación que también es capaz de mover archivos en función de los metadatos? No tiene que ser sofisticado, ya que estoy usando aplicaciones como Picasa, etc. para explorar mi colección. Se prefiere Linux, ya que este es el sistema operativo en el que paso más tiempo, aunque tengo Windows en la misma máquina.

Meh. No es Reddit aquí, no necesitas el tl; dr-meme.
Hmm, estoy demasiado acostumbrado a StackOverflow:]
Pruebe Shotwell, creo que se sorprenderá gratamente.
Actualicé a la última versión de Shotwell y, de hecho, ahora también cubre archivos RAW. Esa será probablemente mi elección si no aparece nada más. Otra posibilidad es hacerlo manualmente en función de la salida exiv2, sin embargo, tomará algún tiempo escribirlo.

Respuestas (4)

Exiftool es una utilidad muy poderosa para ordenar y organizar fotos automáticamente. Ver la sección EJEMPLOS DE CAMBIO DE NOMBRE de su manual.

Se puede especificar un nuevo directorio configurando el valor de la etiqueta Directory. Por ejemplo, el siguiente comando mueve todas las imágenes originalmente en el directorio "DIR" a una jerarquía de directorios organizada por año/mes/día:

exiftool "-Directory<DateTimeOriginal" -d "%Y/%m/%d" DIR

Para mover y renombrar archivos, también puede usar -filenamela opción. Por ejemplo, para ordenar las imágenes por tipo de archivo, año y fecha y hora en que se tomaron, puede ejecutar:

exiftool -d '%%e/%Y/%Y%m%d/%H%I_%%f.%%e' '-filename<DateTimeOriginal' YOURDIR

Luego, un archivo en YOURDIR llamado como imgp1234.dngtomado el 20 de mayo de 2011 a las 08:01 am se moverá a la carpeta dng/2011/20110520/y se renombrará como 0801_imgp1234.dng.

Atención, por favor, eso exiftoolsolo mueve imágenes, por lo que si tiene archivos sidecar junto con sus archivos RAW, debe cuidarlos de alguna manera. Si algunas de sus fotos carecen de datos EXIF, no se moverán de esta manera. Agregar opción -rpara procesar YOURDIR recursivamente.

Se ve exactamente como lo que necesito, aunque ¿qué hace la '-filename<DateTimeOriginal'bandera? Parece -dque está proporcionando toda la información.
@Dykam El objetivo principal de exiftooles leer y modificar los metadatos de la imagen. La sintaxis -DSTTAG<SRCTAGle dice que copie los metadatos de SRCTAGa DSTTAG. -filenameactúa como una etiqueta para cambiar (en efecto, renombrando un archivo), DateTimeOriginalactúa como una etiqueta de origen (metadatos reales); -despecifica el formato de fecha (y permite algunas extensiones, como %%f, %%e). También puede usar CreateDate, FileModifyDatey ModifyDatetambién.

Si bien puede encontrar varios programas de estilo "automatizador" para Linux (también hay uno específico para trabajar con imágenes, aunque no puedo recordar el nombre).

Pero si realmente quieres algo avanzado (y posiblemente multiplataforma), creo que tu mejor opción es desarrollar algo tú mismo. Personalmente, me gusta bastante Python para tales tareas (bueno con la gestión de datos, multiplataforma, etc.), pero es posible que tenga otras preferencias.

Hmm, eso podría funcionar de hecho. Estaba un poco preocupado por el rendimiento, Python no es exactamente el lenguaje más rápido y requiere bastantes gigabytes de imágenes. Pero el cuello de botella es probablemente IO, por lo que si se programa correctamente, solo estará limitado por eso.
Algo que lea el EXIF ​​no debería necesitar leer el archivo completo, y si está en el mismo sistema de archivos, un movimiento no afectará los datos en absoluto. La E/S no debería ser un problema en absoluto.
Hmm, de hecho, olvidé que podía delegar el traslado a las herramientas nativas.
Mover archivos debería ser una operación bastante económica (si el origen/destino residen en el mismo disco, solo es mover un puntero a alguna parte). De lo contrario, Python (y la mayoría de los otros lenguajes) proporciona colas y grupos de subprocesos seguros para tratar fácilmente con ese tipo de cosas.

XnView puede cambiar el nombre de las bases de archivos en EXIF/IPTC en Windows y es lo suficientemente estable para mis varios GB (a veces después de unas vacaciones). Como puede buscar EXIF/IPTC, puede moverlos en función de los metadatos, pero moverlos y renombrarlos al mismo tiempo no.

find /path/to/photos -type f -name "*.NEF" -exec mv {} /path/to/destination/ \;

Este comando encontrará todos los archivos que tengan la extensión "NEF" y los moverá al destino especificado (uno a la vez). También puede repetir esto para sus archivos jpeg.

Eso solo divide el NEF, prefiero si es posible en un solo paso. Sin embargo, es parte del conjunto de herramientas, gracias.