Modifica dei metadati specifici di iPhoto

2

Perpetua:2011-01-16 ashley$ mdls IMAG0107.jpg

...

     

kMDItemComment="Cat with is tongue out."

Quindi, ecco la mia domanda. xattr può essere usato per modificare alcuni attributi. Ad esempio:

Perpetua:2011-01-16 ashley$ xattr -l IMAG0107.jpg 
com.apple.metadata:kMDItemFinderComment:
00000000  62 70 6C 69 73 74 30 30 50 08 00 00 00 00 00 00  |bplist00P.......|
00000010  01 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00  |................|
00000020  00 00 00 00 00 00 00 00 00 09                    |..........|
0000002a
Perpetua:2011-01-16 ashley$ 

Ma questo non è l'attributo che voglio modificare. Immagino che questo sia dovuto al fatto che kMDItemComment è un pezzo di metadata specifico per iPhoto. La mia domanda sarebbe, come faccio a modificarlo?

    
posta Harv 17.01.2011 - 20:45
fonte

3 risposte

2

com.apple.metadata: kMDItemFinderComment è in formato binario elenco proprietà . L'utilizzo di xattr -p -l -x | tail +2 ti dà solo il dump esadecimale dell'attributo. Puoi quindi reindirizzare quello in xxd -r per trasformarlo nuovamente in un file binario.

Da lì puoi aprire quel file nell'editor di proprietà di Apple, assumendo che tu abbia installato gli Strumenti per sviluppatori. È quindi possibile modificare visivamente la proprietà.

Dovresti quindi essere in grado di riapplicare il valore modificato al file utilizzando xxd -p -x e xattr -w -x .

Questo è tutto molto più complicato di quello che si vuole veramente per una singola proprietà che è solo una stringa.

    
risposta data 23.01.2011 - 04:56
fonte
2

Si può fare ciò nel modo "Mac" (tramite AppleScript), usando il seguente script setFinderComment.scpt

#!/usr/bin/osascript
on run argv
    set filePath to POSIX file (item 1 of argv)
    set fileComment to item 2 of argv
    set theFile to filePath as alias
    tell application "Finder" to set comment of theFile to fileComment
end run

Quindi rendi eseguibile chmod a+x setFinderComment.scpt e usalo come

setFinderComment.scpt filename comment
    
risposta data 19.09.2012 - 23:17
fonte
0

Il progetto OpenMeta utilizza gli attributi estesi per memorizzare i tag. Il codice sorgente è disponibile all'indirizzo link . Parte di questo progetto sono strumenti a meta linea di comando aperti.

Questo strumento da riga di comando funziona su un insieme predefinito di attributi utilizzati da OpenMeta, ma poiché è open source, può essere facilmente adattato per consentire ulteriori impostazioni da riga di comando per l'impostazione / lettura di altri attributi estesi.

Soluzione non diretta, ma un percorso verso una soluzione?

    
risposta data 23.01.2011 - 01:34
fonte

Leggi altre domande sui tag