Non ho ancora usato Mavericks.
Finder memorizza i tag nel file stesso (ad esempio: xmp) o è alimentato da un qualche tipo di database? o cosa?
Non ho ancora usato Mavericks.
Finder memorizza i tag nel file stesso (ad esempio: xmp) o è alimentato da un qualche tipo di database? o cosa?
Risposte:
Ora che viene revocato l'NDA: Mavericks salva i tag come attributo esteso , in com.apple.metadata:_kMDItemUserTags
. Puoi controllarli tu stesso usando il comando mdls in questo modo:
mdls -name kMDItemUserTags Ciao
L'epica recensione di OS X 10.9 di John Siracusa descrive l'architettura dei tag in dettaglio.
I tag sono memorizzati in un attributo esteso denominato com.apple.metadata: _kMDItemUserTags. Il suo valore è un elenco di proprietà binarie che contiene un singolo array di stringhe:
$ xattr -p com.apple.metadata:_kMDItemUserTags file3|xxd -r -p|plutil -convert xml1 - -o -
<?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">
<array>
<string>Red
6</string>
<string>aa</string>
<string>Orange
7</string>
<string>Yellow
5</string>
<string>Green
2</string>
<string>Blue
4</string>
<string>Purple
3</string>
<string>Gray
1</string>
</array>
</plist>
I tag per i colori hanno valori come Red\n6
(dove \n
è un avanzamento riga).
Puoi usare xattr per copiare i tag da un file all'altro:
xattr -wx com.apple.metadata:_kMDItemUserTags "$(xattr -px com.apple.metadata:_kMDItemUserTags file1)" file2
xattr -wx com.apple.FinderInfo "$(xattr -px com.apple.FinderInfo file1)" file2
Se il flag kColor in com.apple.FinderInfo non è impostato, Finder non mostra i cerchi per i colori accanto ai file. Se il flag kColor è impostato su arancione e il file ha il tag rosso, Finder mostra sia i cerchi rossi che quelli arancioni. Puoi impostare il flag kColor con AppleScript:
xattr -w com.apple.metadata:_kMDItemUserTags '("Red\n6","new tag")' ~/desktop/file4"
osascript -e 'tell application "Finder" to set label index of file "file4" of desktop to item 1 of {2, 1, 3, 6, 4, 5, 7}'
'("Red\n6","new tag")'
è una sintassi plist vecchio stile per questo:
<?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">
<array>
<string>Red
6</string>
<string>new tag</string>
</array>
</plist>
xattr -p com.apple.FinderInfo file|head -n1|cut -c28-29
stampa il valore dei bit utilizzati per il flag kColor. Il rosso è C, l'arancione è E, il giallo è A, il verde è 4, il blu è 8, il magenta è 6 e il grigio è 2. Il flag che aggiungerebbe 1 ai valori non viene utilizzato in OS X.
Per quanto ho potuto leggere su Internet, da diverse fonti, è molto probabile che Mavericks memorizzi le informazioni dei tag come qualcosa di molto vicino alla strategia OpenMeta nel file stesso. Fino ad ora avevamo già i tag e avevamo diverse applicazioni che ci aiutavano in questo Leap / Yep, per esempio. Ma era solo una buona pratica consolidata sopra uno strato inferiore standard -OpenMeta. Ora Mavericks vuole fare un ulteriore passo nel rendere ufficiali i tag (e come dovrebbero essere codificati nel filesystem). Inoltre i tag avranno un set fisso di colori (7?) E questo potrebbe aiutare ulteriormente a dividere i tag in set per portare ulteriore semantico. Molti di noi pensano che questo potrebbe essere un enorme passo avanti nella visione del filesystem di un grande leader del settore per guidare alla fine le scelte future (le applicazioni si baseranno maggiormente su questo e forse il mac OS stesso si aspetterà alcune speciali annotazioni a livello di sistema). Per motivi di dettagli, OpenMeta vuole che i metadati siano descritti come xattr (attributi estesi) dei file in modo che sia qualcosa di cui il filesystem stesso non si preoccuperà perché fuori dal suo ambito.
La domanda in realtà era piuttosto vecchia e Mavericks cambierà GM molto presto .. Quindi nonostante ci siano solo informazioni relative al dominio Beta, è ragionevolmente vero tutto ciò che ho detto sopra. Ci sono molte discussioni in corso su Internet su questo argomento e una in particolare è qui:
https://groups.google.com/d/msg/openmeta/DK4Of2QGkpM/KIK9VKaCQdkJ
La parte più interessante è:
I tag Apple sono implementati allo stesso modo dei tag OpenMeta, come attributi estesi allegati ai file nel filesystem. L'unica differenza è che il nome dell'attributo è _kMDItemUserTags anziché kMDItemOMUserTags ("OM" in quest'ultimo tag è per "OpenMeta"). I dati dei tag sia per i tag Mavericks che per i tag OpenMeta sono elenchi di proprietà, ma non ho esaminato il formato interno dei piani, quindi non so se sono esattamente gli stessi o meno. Inoltre, non so quali, se del caso, vengono utilizzati metodi di archiviazione ausiliari o alternativi per formati di dischi non HFS + - so che l'hype di Apple ha detto che potresti etichettare i file anche su iCloud, quindi potrebbero esserci dei problemi.
Il lungo e il corto, tuttavia, è che almeno sui dischi Mac locali, i dati dei tag OpenMeta dovranno essere migrati nel nuovo attributo _kMDItemUserTags per essere visualizzati in modo nativo da Maverick. Non è un grosso problema, ma qualcuno deve scrivere un programma di utilità per farlo.