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. Por ejemplo, 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 este ejemplo, 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 usar 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 este ejemplo, 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 con este comando:
exiftool -b -PreviewImage IMG.CR2 > extract.jpg
los -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 siguiente ejemplo:
$ 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 ejemplo anterior 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 que llevan el nombre del año y luego el año 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 los metadatos Create Date and Time.
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. los _
pone un guión bajo antes de la segunda parte del nombre del archivo. %H%M%S
agrega la hora, minuto y 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
│ └── Imágenes antiguas
│ ├── 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.