Sto cercando un programma di riga di comando (ho bisogno di usarlo in uno script) che può impostare i metadati Spotlight sui file.
Non penso che ci sia un modo per: gli indici di Spotlight sono generati da importatori di metadati che analizzano i file e ne individuano le proprietà. Se l'importatore rilevante non rileva alcuna proprietà, quindi per quanto riguarda Spotlight non esiste.
Ora, potrebbe essere possibile cambiare il file attuale in modo tale da aggiungere proprietà alla sua voce di indice. Questa pagina afferma che puoi aggiungere attributi estesi a partire da "com.apple.metadata: "e saranno aggiunti alla voce spotlight per il file, ma non ho potuto farlo funzionare. Il progetto SpotMeta estende il sistema di importazione per aggiungere attributi estesi al database Spotlight, ma funziona solo su OS X v10.4 . Non è una soluzione reale, ma è il più vicino che potessi trovare ...
Puoi sempre usare lo strumento da riga di comando xattr
, che elenca / legge / scrive / cancella gli attributi estesi del file system di un file.
Questo è ciò che spotlight utilizza per creare il suo indice.
Nota che le chiavi di informazione di Spotlight sono precedute da com.apple.metadata:
Come esempio rapido, per cambiare il nome visualizzato sul riflettore di un file:
xattr -w com.apple.metadata:kMDItemDisplayName MyNewFilename.txt ActualFile.txt
per accedere a xattr help, digitare su t:
xattr -h
Ecco una funzione Python che uso per scrivere i Commenti del Finder su un file usando la shell di sistema. Vengono visualizzati in Spotlight, ma non nella casella Ottieni informazioni ...
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
Se hai installato gli Strumenti per sviluppatori Apple (solitamente appare sotto / Sviluppatore / Strumenti), allora hai accesso a SetFile e GetFileInfo comandi che aiutano entrambi a manipolare i metadati dei file.
Inoltre, ho trovato una serie di utilità della riga di comando denominate osxutils che potrebbero rivelarsi utili con requisiti aggiuntivi che emergono durante la scrittura degli script .
Leggi altre domande sui tag command-line spotlight