¿Cómo puedo configurar los metadatos de Spotlight en archivos?

7

Estoy buscando una utilidad de línea de comandos (necesito usarla en un script) que pueda configurar los metadatos de Spotlight en archivos.

    
pregunta Kostas 02.01.2011 - 22:44

4 respuestas

2

No creo que haya una manera de hacerlo: los índices de Spotlight son generados por los importadores de metadatos que analizan los archivos y determinan sus propiedades. Si el importador relevante no detecta alguna propiedad, entonces, en lo que respecta a Spotlight, no existe.

Ahora, podría ser posible cambiar el archivo real de manera que se agreguen propiedades a su entrada de índice. Esta página afirma que puede agregar atributos extendidos comenzando con "com.apple.metadata: "y se agregarán a la entrada de Spotlight para el archivo, pero no pude hacerlo funcionar. El proyecto SpotMeta amplía el sistema de importación para agregar atributos extendidos a la base de datos de Spotlight, pero solo funciona en OS X v10.4 . No es una solución real, pero eso es lo más cerca que pude encontrar ...

    
respondido por el Gordon Davisson 03.01.2011 - 07:25
4

Siempre puede usar la herramienta de línea de comando xattr , que enumera / lee / escribe / borra los atributos extendidos de un archivo del sistema de archivos.

Eso es lo que usa Spotlight para construir su índice.

Tenga en cuenta que las claves de información de Spotlight tienen el prefijo com.apple.metadata:

Como ejemplo rápido, para cambiar el nombre de visualización en un foco de un archivo:

xattr -w com.apple.metadata:kMDItemDisplayName MyNewFilename.txt ActualFile.txt

para acceder a la ayuda de xattr, escriba en t:

xattr -h
    
respondido por el Lourenzo Ferreira 16.11.2011 - 07:59
1

Aquí hay una función de Python que utilizo para escribir Comentarios del Finder en un archivo usando el shell del sistema. Aparecen en Spotlight, pero no en el cuadro Obtener información ...

def writexattrs(F,TagList):
    import subprocess
    """ writexattrs(F,TagList):
    Writes the list of tags to xattr field of file named F
    """
    plistFront = '<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><array>'
    plistEnd = '</array></plist>'
    plistTagString = ''
    for Tag in TagList:
        plistTagString = plistTagString + '<string>{}</string>'.format(Tag)
    TagText = plistFront + plistTagString + plistEnd

    WhichAttribute = "com.apple.metadata:kMDItemFinderComment"
    # Other attributes you might want to try: ["kOMUserTags","kMDItemOMUserTags","_kMDItemUserTags","kMDItemkeywords"]
    XattrCommand = 'xattr -w {0} \'{1}\' "{2}"'.format(WhichAttribute,TagText.encode("utf8"),F)
    # optional, print command format to check:
    # print XattrCommand
    ProcString = subprocess.check_output(XattrCommand, stderr=subprocess.STDOUT,shell=True) 
    return ProcString
    
respondido por el beroe 30.08.2013 - 19:56
-1

Si ha instalado Apple Developer Tools (generalmente aparece en / Developer / Tools), entonces tiene acceso a SetFile y GetFileInfo comandos que ayudan a manipular los metadatos de los archivos.

Además, encontré un conjunto de utilidades de línea de comandos llamadas osxutils que pueden ser útiles con los requisitos adicionales que surgen al escribir sus scripts .

    
respondido por el Ryan Wersal 03.01.2011 - 01:06

Lea otras preguntas en las etiquetas