6 votes

Changer les métadonnées de fichier depuis la CLI qui s'afficheront dans Finder

Finder dispose de colonnes par lesquelles vous pouvez trier les fichiers : Nom, Taille, Type, Date, Commentaire, etc. Ces colonnes sont affichées en tant en-têtes lorsque Finder est en mode "Liste", avec les propriétés respectives des fichiers affichées en dessous.

  • Si je Cmd+I un fichier, et que je change Commentaires en FOO, mdls affiche FOO et Finder affiche FOO.
  • Si je définis les Commentaires sur BAR depuis le Terminal, mdls affiche "BAR", mais Finder affiche toujours "FOO" !

Comment puis-je modifier le champ "Commentaire" depuis le Terminal pour que le changement se propage à Finder ?

$ xattr -w com.apple.metadata:kMDItemFinderComment "BAR" test.txt
$ mdls test.txt
kMDItemFinderComment = "BAR"

Mise à jour : J'ai remarqué que lorsque j'utilise Finder / AppleScript, le Commentaire est défini sur une Liste de Propriétés Binaire contenant la valeur. Serait-il donc possible de contourner AppleScript et d'augmenter les performances ?

My comment

J'ai essayé de modifier la liste de propriétés et de la renvoyer à xattr. Cependant, xattr affiche le message d'erreur Chaîne de longueur impaire même si la taille du fichier de hex est en fait un nombre pair. Quelqu'un ?

xattr -p com.apple.metadata:kMDItemFinderComment a | xxd -r -p | plutil -convert xml1 -o plist -
nano plist
cat plist | plutil -convert binary1 -o - - | xxd -p -c 999 -u > hex
xattr -w -x com.apple.metadata:kMDItemFinderComment hex test.txt

3voto

Mateusz Szlosek Points 21762

mdls utilise sa base de données pour afficher les infos du fichier, pas les attributs étendus qui sont définis sur ce fichier. Ainsi, pour que cela fonctionne, vous devez importer le fichier dans sa base de données après avoir modifié le xattr avec :

mdimport /chemin/vers/fichier

Pour voir le commentaire mis à jour dans Finder, vous pouvez utiliser AppleScript. Voici le code :

#!/bin/bash                                                                                                                                                                                                     

cheminFichier="$1"
commentaire="$2"

/usr/bin/osascript -e "set cheminFichier to POSIX file \"$cheminFichier\"" \
-e "set theFile to cheminFichier as alias" \
-e "tell application \"Finder\" to set the comment of theFile to \"$commentaire\""

Utilisez comme ./script.sh chemin_vers_fichier "Commentaire"

Une version améliorée de ce script peut être trouvée sur StackOverflow par l'utilisateur l'L'l.

LesApples.com

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.

Powered by:

X