mdfind
consulta la base de datos de Spotlight para proporcionar resultados de búsqueda más rápidamente que el escaneo de todo el sistema de archivos para cada consulta.
mdls
por otro lado, no depende de la base de datos de Spotlight, ya que no necesita escanear el sistema de archivos - usted está especificando el archivo que desea examinar directamente. Sin embargo, depende de la API de Spotlight para proporcionar los datos solicitados.
Es decir mdls
no es un programa que contenga código que intente "parsear" todo tipo de archivos o recoger información de muchos lugares. Tampoco lo busca directamente en el store.db
archivo.
Cuando se solicitan los metadatos de un archivo específico a través de la API de Spotlight, la información se recoge de varios lugares y se da al programa ( mdls
en este caso) en un formato uniforme. Estas fuentes son, por ejemplo:
- los metadatos del sistema de archivos
- los atributos extendidos almacenados en el sistema de archivos
- información de los paquetes de aplicaciones y lugares similares
- información recopilada por el plugin de importación de Spotlight para el tipo de archivo específico
Tenga en cuenta que algunos plugins del importador son externos, es decir, pequeños programas almacenados de forma independiente al propio Spotlight. Por ejemplo, en /System/Library/Spotlight
normalmente encontrará importadores para cosas como archivos de audio, archivos de vídeo, archivos comprimidos, etc. Del mismo modo, las aplicaciones pueden venir con sus propios importadores de Spotlight, almacenados en ubicaciones como, por ejemplo:
/Applications/Microsoft Outlook.app/Contents/Library/Spotlight/Microsoft Outlook Spotlight Importer.mdimporter
En este caso para importar datos de Outlook a Spotlight.
Otros plugins son internos, es decir, son autónomos dentro de Spotlight y no requieren programas externos. Tu ejemplo en la pregunta era para un .dmg
y el importador de los mismos es interno.
Puede ejecutar el importador para un archivo específico para ver exactamente qué atributos habría dado al índice Spotlight - sin cambiar realmente el índice Spotlight. Ejecute un comando como este:
mdimport -t -d2 ~/Downloads/MacVim.dmg
Tenga en cuenta que -d2
significa que se ven todos los atributos de metadatos importados, excepto kMDItemTextContent
que en el caso de un documento suele ser muy grande y no es preferible verlo en la salida de un Terminal. También puede ver ese atributo utilizando la función -d3
en su lugar.
Como estos importadores se ejecutan efectivamente como programas de propósito general, las fuentes de datos para los propios importadores pueden ser casi cualquier cosa. Es decir, no se limita a devolver datos encontrados en el propio sistema de archivos - incluso podría dar atributos encontrados consultando servidores en la nube a través de la red (por ejemplo, cuando se tiene un archivo almacenado en iCloud).