Wie speichert Mavericks Finder Tags?

13

Ich habe Mavericks noch nicht benutzt.
Speichert Finder Tags in der Datei selbst (z. B. xmp) oder wird es von einer Art Datenbank unterstützt? oder was?

Kevin Grace
quelle
Vielleicht möchten Sie es ausprobieren, bevor Sie eine Frage zu OS X Maverick stellen.
Ramhound
Beachten Sie, dass der Mavericks-Ansatz zum Markieren im Dateisystem nicht auf Finder beschränkt war.
Graham Perrin

Antworten:

12

Mavericks speichert Tags als erweitertes Attribut

Nachdem die NDA aufgehoben wurde, speichert Mavericks Tags als erweitertes Attribut in com.apple.metadata:_kMDItemUserTags. Sie können sie selbst überprüfen, indem Sie den Befehl mdls wie folgt verwenden :

mdls-name kMDItemUserTags Hallo

John Siracusas epische Rezension von OS X 10.9 beschreibt die Tag-Architektur im Detail.

Dan
quelle
3
Und wie werden erweiterte Attribute gespeichert?
Occulus
1

Tags werden in einem erweiterten Attribut mit dem Namen com.apple.metadata: _kMDItemUserTags gespeichert. Sein Wert ist eine binäre Eigenschaftsliste, die ein einzelnes Array von Zeichenfolgen enthält:

$ 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>

Die Tags für Farben haben Werte wie Red\n6(wo \nist ein Zeilenvorschub).

Sie können xattr verwenden, um die Tags von einer Datei in eine andere zu kopieren:

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

Wenn das kColor-Flag in com.apple.FinderInfo nicht gesetzt ist, zeigt Finder die Kreise für Farben neben Dateien nicht an. Wenn das kColor-Flag auf orange gesetzt ist und die Datei das rote Tag hat, werden im Finder sowohl rote als auch orange Kreise angezeigt. Sie können das kColor-Flag mit AppleScript setzen:

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")' ist im alten Stil Plist-Syntax für diese:

<?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-29Gibt den Wert der Bits aus, die für das kColor-Flag verwendet werden. Rot ist C, Orange ist E, Gelb ist A, Grün ist 4, Blau ist 8, Magenta ist 6 und Grau ist 2. Das Flag, das den Werten 1 hinzufügt, wird in OS X nicht verwendet.

Lri
quelle
1
Wenn ich ein rot gefärbtes Tag mit dem Namen "Financial" erstelle, speichert die erweiterte Attributliste dann "Financial" oder "Red"? Und wie erfolgt die Zuordnung zwischen Name und Farbe?
Vaddadi Kartick
"Das Flag, das den Werten 1 hinzufügt, wird in OS X nicht verwendet." Was bedeutet das?
Nicolas Barbulesco
Diese Antwort ist detailliert. Der Unterschied zwischen den Farben und den Tags ist jedoch nicht klar.
Nicolas Barbulesco
Und wo ist dieses erweiterte Attribut gespeichert?
Nicolas Barbulesco
1

Soweit ich aus mehreren Quellen im Internet lesen konnte, ist es sehr wahrscheinlich, dass Mavericks Tags-Informationen als etwas wirklich Nahes an der OpenMeta-Strategie in der Datei selbst speichern. Bis jetzt hatten wir bereits Tags und wir hatten verschiedene Anwendungen, die in diesem ähnlichen Leap / Yep zum Beispiel halfen. Es war jedoch nur eine bewährte Methode, die über einer standardmäßigen unteren Schicht - OpenMeta - konsolidiert wurde. Jetzt möchte Mavericks noch einen Schritt weiter gehen und Tags (und wie sie im Dateisystem kodiert werden sollen) offiziell machen. Plus-Tags haben eine feste Menge von Farben (7?) Und dies kann zusätzlich dazu beitragen, Tags in Mengen aufzuteilen, um zusätzliche Semantik zu übertragen. Viele von uns sind der Meinung, dass dies ein großer Schritt nach vorne für die Dateisystemvision eines großen Branchenführers sein könnte, um eventuell zukünftige Entscheidungen zu treffen. Aus Gründen der Details möchte OpenMeta, dass Metadaten als xattr (erweiterte Attribute) von Dateien beschrieben werden, damit es dem Dateisystem selbst egal ist, weil es außerhalb seines Gültigkeitsbereichs liegt.

Die Frage war eigentlich ziemlich alt und Mavericks wird bald GM werden. Trotz der Tatsache, dass es nur Informationen bezüglich der Beta-Domain gibt, ist alles, was ich oben gesagt habe, vernünftigerweise wahr. Zu diesem Thema gibt es im Internet mehrere Diskussionen, von denen eine hier zu finden ist:

https://groups.google.com/d/msg/openmeta/DK4Of2QGkpM/KIK9VKaCQdkJ

Der interessanteste Teil ist:

Die Apple-Tags werden genauso implementiert wie OpenMeta-Tags - als erweiterte Attribute, die an die Dateien im Dateisystem angehängt werden. Der einzige Unterschied besteht darin, dass der Attributname _kMDItemUserTags anstelle von kMDItemOMUserTags lautet (das "OM" im letzteren Tag steht für "OpenMeta"). Die Tag-Daten sowohl für Mavericks-Tags als auch für OpenMeta-Tags sind Eigenschaftslisten, aber ich habe das interne Format der Plists nicht überprüft, sodass ich nicht weiß, ob sie genau gleich sind oder nicht. Ich weiß auch nicht, welche zusätzlichen Speichermethoden oder alternativen Methoden für Nicht-HFS + -Datenträgerformate verwendet werden. Ich weiß, dass Apples Hype besagt, dass Sie Dateien auch in iCloud markieren könnten, sodass möglicherweise ein Problem vorliegt.

Kurz und gut, zumindest auf lokalen Mac-Festplatten müssen die OpenMeta-Tag-Daten in das neue _kMDItemUserTags-Attribut migriert werden, damit Maverick sie nativ sehen kann. Keine große Sache, aber dafür muss jemand ein Hilfsprogramm schreiben.

Diego
quelle
1
Seltsam , dass groups.google.com/d/msg/openmeta/DK4Of2QGkpM/KIK9VKaCQdkJ der Link ist, der von Google für den Beitrag angegeben wurde. Wenn Sie diesem Link folgen, wird der erforderliche Beitrag jedoch manchmal nicht angezeigt .
Graham Perrin