
Cómo obtengo detalles de las imágenes de todas las carpetas y subcarpetas con ImageMagick en este formato.
file-name file-location file-format size width height
PD: He leído esta página.http://www.imagemagick.org/script/escape.phppero no puedo encontrar cómo obtener la ruta de ubicación del archivo y cómo incluir archivos en subcarpetas.
Respuesta1
Estoy bastante seguro de que ImageMagick no funcionará de forma recursiva por sí solo. Necesitará escribir un script/programa a su alrededor para trabajar en la estructura de su directorio y llamarlo una vez por cada archivo que desee verificar.
Respuesta2
El siguiente comando le devolverá la información que está buscando:
identify -format "%f %d %m %b %w %h\n" ./* ./*/*
- La secuencia de escape para el directorio de archivos es
%d
. - Para incluir todos los archivos en la carpeta actual, utilice
./*
(el comodín del shell). - Para incluir todos los archivos en todas las subcarpetas, utilice
./*/*
(comodines de shell).
(No dijiste en qué sistema operativo estás. Lo anterior funcionará para Linux, Unix y Mac OS X. Para Windows, usa .\*.*
y .\*.*\*.*
como comodín).
¡Atención!, si tiene archivos que no sean imágenes o documentos PDF en sus carpetas, este comando podría ejecutarse durante bastante tiempo. Los archivos que no son de imagen producirán un mensaje de error como
identify: no decode delegate for this image format `EXE' @ error/constitute.c/ReadImage/501.
Esto se puede evitar redirigiendo todos los mensajes de error a /dev/null
.
Entonces puede ser mejor usar esta variante:
identify \
-format "%f %d %m %b %w %h\n" \
*.{jpg,jpeg,JPG,png,tif,tiff,ppm,gif} \
*/*.{jpg,JPG,jpeg,png,tif,tiff,ppm,gif} \
2>/dev/null
Aquí hay un ejemplo de Mac OS X:
delta.jpg #12649876 JPEG 17441B 307 205 CMYK_separation_–_maximum_black.jpg #21270389 JPEG 1453360B 1600 4780 HFnCz.jpg #21270389 JPEG 356748B 1600 1195 combinado.jpg #21270389 JPEG 528221B 1600 1195 res.jpg #26408022 JPEG 57546B 603 300 rojo-500x2000.jpg #26951336 JPEG 6288B 500 2000 redimensionado-rojo-2000x2000.jpg #26951336 JPEG 7430B 1000 1000 borde-grande-25.jpg #27290574 JPEG 98916B 1024 288 grande.jpg #27290574 JPEG 19216B 1024 576 doble.jpg #27290574 JPEG 35076B 480 270 pequeño.jpg #27290574 JPEG 20716B 720 404
(Sí, ejecuté este comando en un directorio que tiene subdirectorios llamados #27290574
y #26951336
similares...)
Es posible que desee que el resultado se parezca más a una tabla. Para ello, canalice los resultados a través de column -t
. Prueba esto entonces:
identify \
-format "%f %d %m %b %w %h\n" \
*.{jpg,jpeg,JPG,png,tif,tiff,ppm,gif} \
*/*.{jpg,JPG,jpeg,png,tif,tiff,ppm,gif} \
2>/dev/null | column -t
Resultado en mi caso:
delta.jpg #12649876 JPEG 17441B 307 205 CMYK_separation_–_maximum_black.jpg #21270389 JPEG 1453360B 1600 4780 HFnCz.jpg #21270389 JPEG 356748B 1600 1195 combinado.jpg #21270389 JPEG 528221B 1600 1195 res.jpg #26408022 JPEG 57546B 603 300 rojo-500x2000.jpg #26951336 JPEG 6288B 500 2000 redimensionado-rojo-2000x2000.jpg #26951336 JPEG 7430B 1000 1000 borde-grande-25.jpg #27290574 JPEG 98916B 1024 288 grande.jpg #27290574 JPEG 19216B 1024 576 doble.jpg #27290574 JPEG 35076B 480 270 pequeño.jpg #27290574 JPEG 20716B 720 404