2011-12-16 5 views

Respuesta

10

El marco OpenMeta es un estándar de facto de terceros para agregar metadatos a archivos OS X utilizando atributos extendidos. Es utilizado por una serie de aplicaciones de terceros.

+0

+1 aunque, como nota al margen, parece que [al menos una aplicación que anteriormente admitía OpenMeta (en Mavericks) ya no encontrará archivos que usen solo etiquetas OpenMeta] (http://apple.stackexchange.com/questions/ 24494/listing-all-openmeta-tags-and-associated-files # comment236164_24514). –

2

clic derecho y la información, o cmd + i cuando el archivo está seleccionado en el buscador se abrirá un panel de información y se puede agregar datos en la parte superior que se hace referencia en centro de atención. Se llama Comentarios de Spotlight. Puedes hacer esto con directorios también. No estoy seguro de si es la mejor manera, pero es la única manera que conozco de hacerlo.

+0

Debe haber una herramienta para hacer esto programáticamente, también. – Thilo

+0

Supongo que podría hacerlo desde applescript y/o el autómata. Echa un vistazo rápido al automatizador y hay una gran cantidad de acciones precompiladas contra carpetas y archivos, así que supongamos que es bastante capaz de – PurplePilot

7

Esto parece un trabajo para atributos extendidos. Puede obtenerlos y configurarlos desde la línea de comando con xattr, y desde programas con getxattr y setxattr.

Sin embargo, los atributos extendidos (al menos en general) no están indexados por Spotlight. La única excepción que conozco es el atributo "com.apple.metadata: kMDItemFinderComment", que debe contener un plist en formato binario con el comentario indexable real (ver la respuesta de @ PurplePilot). This page claim spot indexará otros xattrs con el prefijo "com.apple.metadata:", pero no lo he conseguido.

+0

Gracias por su respuesta. ¿Hay alguna forma de que todo el archivo tenga un atributo específico? –

+0

Si logra que Spotlight indexe las entradas de xattr, debería poder usarlo para buscar archivos con un xattr en particular. Si no, creo que tiene que recorrer todo el sistema de archivos y usar getxattr para verificar cada metadato. –

4

Si desea establecer mediante programación el "Buscador de comentario" de un archivo (ver @ respuesta de PurplePilot), intente esto:

1) Crear un archivo normal xml plist con sus comentarios:

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<string>My Custom Comment</string> 
</plist> 

2) Convertir el plist al formato binario aceptado:

plutil -convert binary1 my_custom_comment.plist 

3) el uso de xattr, defina los metadatos kMDItemFinderComment:

xattr -wx "com.apple.metadata:kMDItemFinderComment" "`xxd -ps my_custom_comment.plist`" MyFile 

Se puede ver con xattr -l MyFile que los comentarios están allí y en el formato binario correcto, pero por alguna razón buscador no muestra que (al menos para mí) en la columna Comentarios.

La búsqueda en la base de datos de Spotlight con mdfind "My Custom Comment" devolverá todos los archivos con este comentario. atributo

13

personalizada nombres funcionan para mí:

$ xattr -w com.apple.metadata:MyAttribute gfdylvyieo a.txt 
$ mdls -n MyAttribute a.txt 
MyAttribute = "gfdylvyieo" 
$ mdfind gfdylvyieo 
/private/tmp/a.txt 
$ mdfind 'MyAttribute=*' 
/private/tmp/a.txt 

xattr -wx no es necesario si el valor es texto sin formato:

xattr -w com.apple.metadata:kMDItemFinderComment aa file.txt 

Cuando se agrega un comentario Spotlight desde el Finder, se almacena tanto en lo un atributo extendido y en un archivo .DS_Store. Si solo agrega un atributo extendido, el campo de comentario de Spotlight aparece en blanco en Finder, pero los metadatos del comentario aún están indexados por Spotlight.