Modifica dei metadati dei file dalla CLI che verrà mostrata nel Finder

2

Il Finder ha colonne per ordinare i file in base a: Nome, Dimensione, Tipo, Data, Commento, ecc. Questi sono mostrati come intestazioni quando Finder è in modalità "Elenco", con le rispettive proprietà dei file mostrate sotto.

  • Se I Cmd + I un file e modifica i commenti su FOO, mdls mostra FOO e Finder mostra FOO.
  • Se imposto Commenti alla BAR dal Terminale, mdls mostra "BAR", ma Il Finder mostra ancora "FOO"!

Come posso cambiare il campo "Commento" da Terminale in modo che la modifica si propaga in Finder?

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

Aggiornamento : ho notato che quando si utilizza Finder / AppleScript, Comment è impostato su un elenco di proprietà binarie contenente il valore. Quindi forse è possibile aggirare AppleScript e aumentare le prestazioni?

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<string>My comment</string>
</plist>

Ho provato a modificare l'elenco delle proprietà e reinserirlo in xattr . Tuttavia, xattr restituisce il messaggio di errore Odd-length string anche se la dimensione del file di hex è in realtà un numero pari. Chiunque?

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
    
posta forthrin 23.03.2018 - 12:18
fonte

1 risposta

1

mdls utilizza il suo database per visualizzare informazioni sui file, non attributi estesi che sono impostati su quel file. Quindi, per farlo funzionare, devi importare il file nel suo database dopo aver cambiato xattr con:

mdimport /path/to/file

Per visualizzare il commento di aggiornamento in Finder, puoi utilizzare AppleScript. Ecco il codice:

#!/bin/bash                                                                                                                                                                                                     

filepath="$1"
comment="$2"

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

È possibile trovare una versione migliore di tale script su StackOverflow dall'utente l'L'l .

    
risposta data 23.03.2018 - 13:04
fonte

Leggi altre domande sui tag