Wie speichert Mavericks Finder Tags?

7336
Kevin Grace

Ich habe Mavericks noch nicht benutzt.
Speichert der Finder Tags in der Datei selbst (zB: xmp) oder wird er von einer Art Datenbank betrieben? oder was?

11
Vielleicht möchten Sie es ausprobieren, bevor Sie eine Frage zu OS X Maverick stellen. Ramhound vor 10 Jahren 0
Beachten Sie, dass der Ansatz von Mavericks zum Markieren innerhalb des Dateisystems nicht auf den Finder beschränkt war. Graham Perrin vor 8 Jahren 0

3 Antworten auf die Frage

10
Dan

Mavericks speichert Tags als erweitertes Attribut

Jetzt, da die NDA aufgehoben ist: Mavericks speichert 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 epischer Testbericht zu OS X 10.9 beschreibt die Tag-Architektur detailliert.

Und wie werden erweiterte Attribute gespeichert? occulus vor 9 Jahren 3
1
Diego

Soweit ich aus verschiedenen Quellen im Internet lesen konnte, ist es sehr wahrscheinlich, dass Mavericks Tag-Informationen als etwas enthält, das der OpenMeta-Strategie in der Datei selbst sehr nahe kommt. Bis jetzt hatten wir bereits Tags und hatten mehrere Anwendungen, die beispielsweise diesem Sprung ähnlich waren wie Leap / Yep. Dies war jedoch nur eine bewährte Methode, die über einer standardmäßigen unteren Schicht -OpenMeta konsolidiert wurde. Nun will Mavericks einen Schritt weiter machen, um Tags (und wie sie im Dateisystem verschlüsselt werden sollen) zu machen, offiziell. Plus-Tags haben einen festen Satz von Farben (7?), Was zusätzlich dazu beitragen kann, Tags in Sätzen zu teilen, um zusätzliche Semantik zu erhalten. Viele von uns glauben, dass dies ein großer Fortschritt in der Dateisystemvision eines großen Branchenführers sein könnte, um letztendlich zukünftige Entscheidungen zu treffen (Anwendungen werden stärker davon abhängig sein und der Mac OS selbst wird möglicherweise spezielle systemweite Anmerkungen erwarten). Aus Gründen der Details möchte OpenMeta, dass Metadaten als xattr (erweiterte Attribute) von Dateien bezeichnet werden, sodass sich das Dateisystem nicht darum kümmert, weil es außerhalb seines Gültigkeitsbereichs liegt.

Die Frage war eigentlich ziemlich alt und Mavericks wird GM schon sehr bald machen. Trotz der Tatsache, dass es nur Informationen gibt, die sich auf die Betadomäne beziehen, ist alles einigermaßen wahr, was ich oben gesagt habe. Es gibt mehrere Diskussionen im Internet, die sich mit diesem Thema befassen, und eine davon ist hier:

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

Der interessanteste Teil ist:

Die Apple-Tags werden auf dieselbe Weise wie OpenMeta-Tags implementiert - als erweiterte Attribute, die an die Dateien im Dateisystem angehängt werden. Der einzige Unterschied ist, dass der Attributname _kMDItemUserTags anstelle von kMDItemOMUserTags ist (das "OM" im letzteren Tag ist für "OpenMeta"). Die Tag-Daten für beide Mavericks-Tags und OpenMeta-Tags sind Eigenschaftslisten, aber ich habe mir das interne Format der Plists nicht angesehen, daher weiß ich nicht, ob sie genau gleich sind oder nicht. Ich weiß auch nicht, welche Hilfsspeicher oder alternative Methoden für Nicht-HFS + -Diskettenformate verwendet werden. Ich weiß, Apples Hype sagte, Sie könnten Dateien auch auf der iCloud-Datei kennzeichnen, daher könnte es ein Problem geben.

Das Lange und die Kürze davon ist jedoch, dass die OpenMeta-Tag-Daten zumindest auf lokalen Mac-Festplatten zum neuen _kMDItemUserTags-Attribut migriert werden müssen, um von Maverick nativ gesehen zu werden. Keine große Sache, aber jemand muss ein Hilfsprogramm dafür schreiben.

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

Tags werden in einem erweiterten Attribut mit dem Namen com.apple.metadata: _kMDItemUserTags gespeichert. Ihr Wert ist eine binäre Eigenschaftsliste, die ein einzelnes String-Array 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 Flag kColor in com.apple.FinderInfo nicht gesetzt ist, zeigt der Finder die Kreise für Farben nicht neben Dateien an. Wenn das Flag kColor auf orange gesetzt ist und die Datei das rote Tag hat, zeigt der Finder sowohl rote als auch orangefarbene Kreise an. 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 ' 

'("Red\n6","new tag")' ist eine Plist-Syntax im alten Stil:

<?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 Flag kColor 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. Die Markierung, die den Werten 1 hinzufügen würde, wird in OS X nicht verwendet.

Wenn ich ein Tag mit dem Namen "Financial", beispielsweise in roter Farbe, erstelle, speichert das erweiterte Attribut plist "Financial" oder "Red"? Und wie erfolgt die Zuordnung zwischen Name und Farbe? Vaddadi Kartick vor 9 Jahren 1
"Das Flag, das zu den Werten 1 hinzufügen würde, wird in OS X nicht verwendet." Was bedeutet das? Nicolas Barbulesco vor 8 Jahren 0
Diese Antwort ist detailliert. Der Unterschied zwischen den Farben und den Tags ist jedoch nicht klar. Nicolas Barbulesco vor 8 Jahren 0
Und wo wird dieses erweiterte Attribut gespeichert? Nicolas Barbulesco vor 8 Jahren 0