Je suis à la recherche d'un utilitaire de ligne de commande (je dois l'utiliser dans un script) qui peut définir les métadonnées Spotlight pour les fichiers.
S
Je suis à la recherche d'un utilitaire de ligne de commande (je dois l'utiliser dans un script) qui peut définir les métadonnées Spotlight pour les fichiers.
Vous pouvez toujours utiliser l'outil en ligne de commande xattr
qui énumère/lit/écrit/efface les attributs étendus du système de fichiers d'un fichier.
C'est ce que Spotlight utilise pour construire son index.
Notez que les clés d'information sur les projecteurs sont précédées du préfixe com.apple.metadata:
Par exemple, pour changer le nom d'affichage sur le spot d'un fichier :
xattr -w com.apple.metadata:kMDItemDisplayName MyNewFilename.txt ActualFile.txt
pour accéder à l'aide xattr, tapez sur t :
xattr -h
Je ne pense pas qu'il y ait un moyen de le faire. Les index Spotlight sont générés par des importateurs de métadonnées qui analysent les fichiers et déterminent leurs propriétés. Si l'importateur concerné ne détecte pas une propriété, elle n'existe pas pour Spotlight.
Il pourrait être possible de modifier le fichier actuel de manière à ajouter des propriétés à son entrée d'index. Cette page prétend que vous pouvez ajouter des attributs étendus commençant par "com.apple.metadata :" et qu'ils seront ajoutés à l'entrée spotlight du fichier, mais je n'ai pas réussi à le faire fonctionner. Le projet SpotMeta étend le système d'importation pour ajouter des attributs étendus à la base de données Spotlight, mais ne fonctionne que sous OS X v10.4. Ce n'est pas une solution réelle, mais c'est ce que j'ai pu trouver de plus proche...
@GordonDavisson merci pour votre commentaire de clarification "Un seul importateur par type de fichier". Cela signifie clairement que si je voulais un paramètre supplémentaire comme le "taux de compression" pour les images compressées avec perte (JPEG, WEBP, etc.), il n'est pas possible de créer un MDimporter supplémentaire gérant ces types de fichiers d'images publiques, qui s'exécute en plus de /System/Library/Spotlight/Image.mdimporter
. Si nous voulons cela, la seule possibilité est de demander à Apple d'ajouter un nouvel attribut au fichier central. Image.mdimporter
.
@porg Gardez à l'esprit que je ne suis pas un expert en la matière et qu'il est possible que quelque chose ait changé au cours de la dernière décennie de mises à jour. Je jetterais un coup d'œil à la documentation actuelle et verrais s'il y a une nouvelle option pour faire cela.
Voici une fonction Python que j'utilise pour écrire les commentaires du Finder dans un fichier en utilisant le shell du système. Ils apparaissent dans Spotlight, mais pas dans la boîte "Get Info"...
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
Si vous avez installé les Apple Developer Tools (qui apparaissent généralement sous /Developer/Tools), vous avez accès à l'application SetFile y GetFileInfo qui permettent toutes deux de manipuler les métadonnées des fichiers.
En outre, j'ai trouvé un ensemble d'utilitaires en ligne de commande appelés osxutils qui peut s'avérer utile en cas d'exigences supplémentaires lors de l'écriture de vos scripts.
SetFile et GetFileInfo n'interagissent pas avec les métadonnées Spotlight mais avec les métadonnées du système de fichiers. C'est pourquoi mdls ne renvoie pas la même chose que GetFileInfo ( pastie.org/private/w2pzgheje9afyguadhj5fq ). osxutils ne semble pas fournir les fonctionnalités dont j'ai besoin et a été abandonné depuis 2005 (à peu près au moment où Spotlight est sorti).
LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.