FAQ: Erklärung des Tag-Systems von macOS (Finder) und seiner Implementierung in dieser App
1. Was sind Tags im Finder unter macOS und wo werden sie gespeichert?
Finder-Tags gehören zu den Metadaten einer Datei. Sie werden nicht direkt in den Dateiinhalt geschrieben, sondern in die erweiterten Attribute (xattr) der Datei eingetragen. Der wichtigste Schlüssel hierfür lautet:
com.apple.metadata:_kMDItemUserTags
Der Inhalt dieses Schlüssels ist eine binäre Plist, die im Wesentlichen ein Array von Tags darstellt. Jedes Tag-Element enthält einen Tag-Namen sowie eine Farbnummer, wobei die Farbnummern von 0 bis 7 reichen (0 = farblos, 1 = grau, 2 = grün, 3 = lila, 4 = blau, 5 = gelb, 6 = rot, 7 = orange).
Daher gilt:
- Das „Versehen einer Datei mit einem Tag“ bedeutet im Kern, dass die Tag-Metadaten in die xattr geschrieben werden.
- Ob diese Tags anschließend von Spotlight durchsucht werden können, ist davon unabhängig.
2. Über die alten erweiterten Attribute com.apple.FinderInfo
com.apple.FinderInfo ist ein älteres Mechanismus des macOS-Finders:
- Alter Mechanismus: Er kann nur eine einzige Farbe darstellen und enthält keinen Tag-Namen.
- Kann weiterhin von neueren Systemen geschrieben werden: Auch wenn heute hauptsächlich
_kMDItemUserTagsverwendet wird, kann der Finder weiterhin gleichzeitigcom.apple.FinderInfoschreiben bzw. aktualisieren, um Kompatibilität mit älteren Systemen zu gewährleisten.
Genauer gesagt:
- Der Finder schreibt oder aktualisiert die Farbinformationen in
com.apple.FinderInfonur dann, wenn der jeweilige Tagname in der benutzerdefinierten Tagliste des Finders enthalten ist. - Bei mehreren farbigen Tags wird die Farbe des zuletzt gültigen Eintrags aus der Liste verwendet.
3. Mehrsprachigkeitsproblematik: Warum erscheint dieselbe Farbe in verschiedenen Sprachversionen als „unterschiedliches Tag“?
macOS schreibt lokalisierte Tag-Namenszeichenketten:
- In englischen Systemen wird beispielsweise
Redgeschrieben. - In chinesischen Systemen wird stattdessen
红色(„rote Farbe“) geschrieben.
Für das System handelt es sich dabei um zwei unterschiedliche Tags. Diese App ruft über System-APIs die standardmäßigen Farbtag-Namen ab; daher hängt das Ergebnis von der Systemsprache ab (unter „Systemeinstellungen → Allgemein → Sprache & Region / Benutzeroberfläche“ wird bei Auswahl von „Automatisch“ die aktuelle Systemsprache verwendet). Wenn die Systemsprache und die Anwendungssprache nicht übereinstimmen, kann es zu Inkonsistenzen bei den angezeigten Tag-Namen kommen.
4. Warum müssen die Einstellungen in der App mit den Tag-Konfigurationen im Finder übereinstimmen?
- Aufgrund der Einschränkungen von macOS kann die App normalerweise nicht vollständig die Konfigurationsliste der „benutzerdefinierten Tagnamen ↔ Farben“ des Finders lesen.
- Beim Lesen von Tags liefert die System-API oft nur den Tag-Namen, nicht jedoch die Farbe. Wenn die App nicht konfiguriert ist, welche Farbe diesem Namen entspricht, kann die Farbanzeige fehlerhaft sein.
- Beim Schreiben von Tags übermittelt die System-API ebenfalls meist nur den Tag-Namen, wobei die endgültige Farbe vom Finder anhand dieses Namens bestimmt wird.
5. Wie werden Tag-Metadaten an verschiedenen Datenträgern bzw. Netzwerkorten gespeichert? (APFS / AppleDouble / NTFS ADS)
5.1 APFS (lokale Festplatte) – native Speicherung in xattr (am zuverlässigsten)
APFS unterstützt erweiterte Attribute nativ, sodass Tag-Metadaten direkt in den xattr der Datei selbst gespeichert werden.
5.2 Orte mit unzureichender oder fehlender xattr-Unterstützung – AppleDouble (._Originaldateiname)
Wenn das Ziel-Dateisystem oder -Protokoll xattr nicht zuverlässig speichern kann (häufig bei FAT32, exFAT und Netzlaufwerken wie SMB/WebDAV/NFS), legt macOS die Metadaten in sogenannten AppleDouble-Begleitdateien ab:
._Originaldateiname(z. B.photo.jpgerhält._photo.jpg)
Sichtbarkeit:
- Der Finder zeigt diese Dateien niemals an, auch nicht, wenn versteckte Dateien angezeigt werden.
- Im Terminal ist
ls -lasichtbar. - Unter Windows sind sie sichtbar, wenn versteckte Dateien angezeigt werden; daher sieht man dort viele kleine
._-Dateien.
Wichtiger Hinweis (häufige Ursache für „verlorene“ Tags):
- Wenn Sie Dateien unter Windows oder mit bestimmten Tools verschieben oder kopieren und dabei nur die Originaldatei bewegen, während die
._-Datei am ursprünglichen Ort bleibt, scheinen die Tags an der neuen Position „verschwunden“ zu sein. - Sobald die entsprechende
._-Datei ebenfalls an den neuen Ort verschoben wird, lassen sich die Tags in der Regel wiederherstellen.
5.3 SMB-Verbindung zu NTFS: Möglicher Einsatz von ADS (optionale Datenströme)
Wenn über SMB auf ein NTFS-Laufwerk zugegriffen wird und die Server-/Protokollkonfiguration dies zulässt, generiert macOS möglicherweise keine ._-Dateien, sondern schreibt die Metadaten stattdessen in die ADS (Alternate Data Streams) von NTFS:
- ADS sind ein Merkmal von NTFS: Eine Datei kann neben ihrem Hauptdatenstrom weitere, unsichtbare Zusatzdatenströme enthalten, die zur Speicherung zusätzlicher Metadaten dienen.
- Vorteil: Bei Verschiebungen oder Kopien innerhalb eines NTFS-Dateisystems bleiben diese Metadaten in der Regel erhalten, und für Windows-Benutzer bleibt das Verzeichnis relativ „sauber“, da keine
._-Dateien erstellt werden.
Beachten Sie jedoch:
- Wenn Sie Dateien von NTFS auf FAT32 oder exFAT verschieben oder kopieren, unterstützt das Ziel-Dateisystem weder ADS noch xattr. Windows zeigt dann häufig eine Meldung wie folgt an:
„Möchten Sie die Datei wirklich kopieren, ohne ihre Eigenschaften zu übernehmen?“ Dies bedeutet, dass die zusätzlichen Metadaten verworfen werden; nach dem Kopieren sind die Tags möglicherweise nicht mehr vorhanden.
6. Wie lassen sich die Tag-xattr einer Datei anzeigen?
Der Befehl xattr ist wenig praktisch: Er unterstützt die Verarbeitung und Anzeige von binären Plist-Attributen wie com.apple.metadata:_kMDItemUserTags nicht. Um diese korrekt auszugeben, muss die Option -px verwendet werden, die den Inhalt im Hexadezimalformat darstellt.
Es empfiehlt sich die Verwendung eines Drittanbieter-Tools:
- xattred: Damit können xattr wie
_kMDItemUserTagsundcom.apple.FinderInfoanschaulich angezeigt und validiert werden.
7. Welche Beziehung besteht zwischen Spotlight und Tags? Sind Tags von Spotlight abhängig?
- Tags selbst sind nicht von Spotlight abhängig: Sobald Sie einen Tag setzen, wird er in die xattr der Datei geschrieben. Ob er indiziert wird oder nicht, hat keinen Einfluss darauf, ob der Tag „existiert“ oder nicht.
- Spotlight ist lediglich ein Indizierungs-Tool: Es indexiert Tag-Namen und andere Metadaten, um systemweite Suchvorgänge zu ermöglichen.
- macOS pflegt den Index bei Dateiverlegungen, Umbenennungen usw. in der Regel automatisch; externe Laufwerke, Netzlaufwerke und Ordner, die in die „Suchprivatsphäre“ aufgenommen wurden, werden jedoch möglicherweise nicht von Spotlight indiziert.
8. Was leistet die „erweiterte Indizierung“ dieser App?
Wenn Spotlight nicht greift (z. B. bei externen Laufwerken, Netzlaufwerken oder Ordnern, die der Suchprivatsphäre unterliegen), bietet diese App eine erweiterte Indizierung:
- Während Sie in der App einen Ordner durchsuchen, zeichnet die App die Tag-Informationen der Dateien in diesem Ordner auf.
- Wenn Sie in der Ordnerstruktur einen bestimmten Tag auswählen und alle Dateien mit diesem Tag anzeigen lassen, ergänzt die App die Spotlight-Ergebnisse um Dateien, die über die erweiterte Indizierung gefunden wurden.
- Über einen Rechtsklick auf einen Ordner können Sie „Scannen und aktualisieren“ auswählen, um den Tag-Index für den Inhalt dieses Ordners zu aktualisieren.