Cómo instalar y usar Exiftool en Linux

Es posible que se haya encontrado con ExifTool mientras buscaba un software de recuperación de imágenes. Bueno, ExifTool hace más que eso. Es un programa de código abierto para leer, modificar y manipular imágenes, videos, audios y metadatos PDF. Los metadatos son los datos adicionales que se agregan a los archivos multimedia. Para example, los metadatos de las fotografías son los datos adicionales como el nombre del dispositivo, la resolución de la imagen, la ubicación en la que se tomó la imagen, la fecha de captura y modificación y más.

ExifTool admite varios formatos de metadatos, incluidos EXIF, GPS, XMP, GeoTIFF, Photoshop IRB, ID3, FlashPix. Su cámara escribe EXIF ​​(formato de archivo de imagen intercambiable) y nos centraremos en las imágenes en este artículo, pero tenga en cuenta que ExifTool se puede utilizar para modificar los metadatos de cualquier archivo. Además, si necesita copiar, mover, renombrar, extraer vistas previas o modificar varias imágenes a la vez de forma rápida y segura, ExifTool es lo que necesita.

Al final de este artículo, sabremos cómo instalar ExifTool en Ubuntu / CentOS y manipular los metadatos de los archivos. Usaré el formato CR2 (archivos sin procesar de Canon) en este artículo, y eso está perfectamente bien. Modifique las partes requeridas de los comandos utilizados en este artículo para hacer su trabajo.

Instalación de ExifTool

En esta sección, instalaremos ExifTool en Ubuntu y otras distribuciones de Linux.

En Ubuntu

Puede instalar ExifTool en Ubuntu usando la utilidad apt.

# sudo apt install libimage-exiftool-perl

De la fuente

Puede compilar e instalar ExifTool desde la fuente en cualquier distribución de Linux (incluido CentOS)

$ wget https://netix.dl.sourceforge.net/project/exiftool/Image-ExifTool-10.61.tar.gz
$ tar xvf Image-ExifTool-10.61.tar.gz
$ cd Image-ExifTool-10.61/

Puede ejecutar ExifTool ejecutando ./exiftool en el directorio ExifTool o continúe con el siguiente paso si desea instalarlo en todo el sistema. Debe tener Perl instalado en su caja de Linux antes de compilar.

# perl Makefile.PL
# make
# make test
# make install

Ahora puede ejecutar ExifTool en cualquier lugar de su terminal escribiendo exiftool.

Usar ExifTool con metadatos

Estos son los comandos más comunes que puede usar con ExifTool:

Mostrando todos los metadatos asociados con una imagen

$ exiftool IMG.CR2
 ExifTool Version Number : 10.61
 File Name : IMG.CR2
 Directory : .
 File Size : 16 MB
 File Modification Date/Time : 2017:09:24 12:15:41+00:00
 File Access Date/Time : 2017:09:24 12:16:16+00:00
 File Inode Change Date/Time : 2017:09:24 12:16:10+00:00
 File Permissions : rw-rw-r--
 File Type : CR2
 File Type Extension : cr2
 MIME Type : image/x-canon-cr2

En esto example, ejecutamos exiftool contra una imagen llamada “IMG.CR2” y obtuvimos metadatos amigables que van desde la fecha de modificación del archivo, el ancho y alto de la imagen, los componentes de color hasta los megapíxeles.

Si desea los mismos metadatos, pero en lugar de usar nombres de metadatos legibles como “Modificar fecha”, desea los nombres que necesita usar cuando los usará en los comandos ExifTool reales, use el -s opciones. Entonces, en lugar de “Nombre de archivo”, verá “Nombre de archivo”, etc.

$ exiftool -s IMG.CR2
 ExifToolVersion : 10.61
 FileName : IMG.CR2
 Directory : .
 FileSize : 16 MB
 FileModifyDate : 2017:09:24 12:15:41+00:00
 FileAccessDate : 2017:09:24 12:16:16+00:00
 FileInodeChangeDate : 2017:09:24 12:16:10+00:00
 FilePermissions : rw-rw-r--
 FileType : CR2
 FileTypeExtension : cr2
 MIMEType : image/x-canon-cr2

Visualización de propiedades de metadatos específicas de un archivo

En lugar de utilizar el comando anterior para ver todos los metadatos, puede especificar el nombre de la propiedad de metadatos antes del nombre de la imagen para ver los datos exactos. En esto example, extraeremos los datos de RedBalance, FileType, ShootingMode y HDR para una imagen.

$ exiftool -RedBalance IMG_9110.CR2
 Red Balance : 1.495117

$ exiftool -FileType IMG_9110.CR2
 File Type : CR2

$ exiftool -ShootingMode IMG_9110.CR2
 Shooting Mode : Manual

$ exiftool -HDR IMG_9110.CR2
 HDR : Off

Extracción de la imagen de vista previa incrustada en archivos sin formato

En caso de que tenga una imagen dañada, puede intentar extraer la imagen de vista previa o incluso la miniatura usando este comando:

exiftool -b -PreviewImage IMG.CR2 > extract.jpg

El -b La opción le dice a exiftool que genere datos en formato binario y extract.jpg es el archivo de destino de la nueva imagen creada. Puedes reemplazar -PreviewImage con -ThumbnailImage si quieres una miniatura en su lugar.

Mover o copiar archivos de imagen a carpetas por año y mes

Si tiene varias imágenes y desea moverlas a nuevos directorios por año, mes o incluso días, puede hacerlo fácilmente usando exiftool en el example debajo:

$ exiftool -o '-Directory<CreateDate' -d ./NewImages/%y/%y%m -r ./OldImages
 4 directories scanned
 1 directories created
 9 image files updated
 4 image files unchanged

El example arriba copia las imágenes antiguas en carpetas nuevas según su año y mes. Los diversos parámetros se explican a continuación.

-o copia todos los archivos y deja los archivos de origen en su lugar. Eliminar esta opción los moverá en lugar de copiarlos

-Directory<CreateDate mueve las imágenes a sus nuevas carpetas de destino usando la fecha de creación de la imagen

./NewImages/%y/%y%m es la ruta relativa a las carpetas en las que se copiarán las imágenes con las subcarpetas nombradas según el año y luego el año y el mes.

-r repite el proceso de forma recursiva sobre la carpeta de origen y sus subcarpetas.

./OldImages es la carpeta de origen desde donde comienza toda la operación y se guardan las imágenes originales.

Usaremos el tree comando para ver la estructura de carpetas de la nueva disposición de las imágenes que manipulamos. Podemos ver que las imágenes se mueven a una nueva carpeta con las subcarpetas year y luego yearmonth.

$ tree
 .
 └── 17
     └── 1708
         ├── IMG_9110.CR2
         ├── IMG_9111.CR2
         ├── IMG_9112.CR2
         ├── IMG_9114.CR2
         ├── IMG_9115.CR2
         ├── IMG_9116.CR2
         ├── IMG_9117.CR2
         └── IMG_9118.CR2

2 directories, 8 files

Cambiar el nombre de los archivos de imagen según su fecha de creación

El siguiente comando cambia el nombre de todos los archivos RAW “CR2” (Canon), en la carpeta actual y sus subcarpetas, de acuerdo con la fecha y hora de creación de metadatos.

exiftool '-filename<CreateDate' -d %y%m%d_%H%M%S%%-c.%%e -r -ext CR2 ./RenamedImages

-filename<CreateDate le dice a exiftool que cambie el nombre de los archivos de imágenes usando sus datos de creación y tiempo

-d significa establece el formato para los valores de datos / tiempo

%y%m%d_%H%M%S%%-c.%%le se utiliza para especificar el formato que se utilizará al cambiar el nombre del archivo:
% y% m% d_ significa que la primera parte del nuevo nombre de archivo serán los dos últimos dígitos del año, mes y fecha de creación. El _ pone un guión bajo antes de la segunda parte del nombre del archivo. %H%M%S agrega la hora, el minuto y el segundo del tiempo de creación.

%%-c agrega un número de copia incremental si varias imágenes tienen el nombre hasta el punto del proceso de cambio de nombre. -c simplemente pone un guión antes del número de copia.

.%%e mantiene la extensión del nombre del archivo original. Si desea que sus extensiones estén en minúsculas o mayúsculas, use .%%le o .%%ue respectivamente.

-ext CR2 le dice a exiftool que cambie el nombre de los archivos con solo la extensión CR2. Para cambiar el nombre de todos los archivos de imagen en la carpeta de origen, no especifique ninguna extensión.

-r repite el proceso de forma recursiva sobre la carpeta de origen y sus subcarpetas.

./RenamedImages es la ruta relativa a la carpeta que contiene todas las imágenes a las que se les cambiará el nombre.

Usaremos el tree comando de nuevo para comparar nuestros nombres de archivo originales en OldImages a los nuevos en RenamedImages.

.
├── Imágenes
Yo └── OldImages
│ ├── IMG_9110.CR2
│ ├── IMG_9111.CR2
│ ├── IMG_9112.CR2
│ ├── IMG_9114.CR2
│ ├── IMG_9115.CR2
│ ├── IMG_9116.CR2
│ ├── IMG_9117.CR2
│ └── IMG_9118.CR2
└── RenamedImages
├── 170827_184715.CR2
├── 170827_184726.CR2
├── 170827_184736.CR2
├── 170827_184800.CR2
├── 170827_184821.CR2
├── 170827_184848.CR2
├── 170827_184853.CR2
└── 170827_184855.CR2

ExifTool es una herramienta muy poderosa para manipular metadatos de archivos. Hay varias aplicaciones y, como era de esperar, no pudimos agregar todas las opciones. ¿Qué nos perdimos? Cuéntanos en la sección de comentarios ahora.