Wie kann ich Tags in Mavericks rekursiv anwenden?

Jetzt, da Mavericks diesen hässlichen farbigen Balken entfernt und durch einen gut aussehenden Punkt ersetzt hat, würde ich gerne mehr Tags verwenden.

Grundsätzlich habe ich Arbeitsdateien an verschiedenen Orten, die sich mit verschiedenen Projekten befassen, und ich möchte das Tag für alle Dateien anwenden, die in bestimmten Ordnern enthalten sind. Die Dateien können in Zukunft in neue Ordner (außerhalb des ursprünglichen Ordners) verschoben werden, daher möchte ich ein Tag rekursiv auf einen Ordner anwenden, damit ich ihn leichter finden kann, wenn er aus seinem Ordner verschoben wird.

Antworten (4)

Sie können xattr verwenden , um verschiedene Metadaten zu schreiben, die sich auf die „neuen“ Tags in Mavericks beziehen. John Siracusa hat bereits hier das schwere Heben übernommen .

Im Wesentlichen müssen Sie zwei Attribute, com.apple.FinderInfo und com.apple.metadata:_kMDItemUserTags, in die Dateien schreiben. Der einfachste Weg wird sein, eine Datei mit den gewünschten Tags zu versehen und einfach die Attribute daraus zu kopieren. Öffnen Sie das Terminal und wechseln Sie in das Verzeichnis, das den Ordner enthält, den Sie rekursiv markieren möchten. Geben Sie dann ein:

touch sampleFile
open .

Dadurch wird der Finder geöffnet, sodass Sie die Beispieldatei mit Tags versehen können, wie Sie alle anderen Dateien mit Tags versehen möchten. Nachdem Sie mit dem Taggen fertig sind, wechseln Sie zurück zu Ihrem Terminalfenster und geben Sie Folgendes ein:

find yourDirName -type f | xargs xattr -wx com.apple.FinderInfo \
"`xattr -px sampleFile`"

find yourDirName -type f | xargs xattr -wx com.apple.metadata:_kMDItemUserTags \
"`xattr -px com.apple.metadata:_kMDItemUserTags sampleFile`"

Dadurch werden alle Dateien in yourDirName sowie Dateien in allen Unterverzeichnissen rekursiv aufgeschlüsselt und markiert. Sie können das Argument -type f weglassen, wenn Sie sowohl die Unterverzeichnisse als auch die Dateien markieren möchten.

Schließlich können Sie die ändern

find yourDirName -type f

Befehle zu

find yourDirName -iname "*.ext"

wenn Sie nur bestimmte Dateitypen/Erweiterungen markieren möchten.

Liebe es. Ich habe dieselbe Ars-Rezension gelesen und mich gefragt, wie ich die erforderlichen Metadaten an jede Datei anhängen kann.

Es gibt ein CLI-Tag-Tool, das über Macports/Homebrew verfügbar ist: https://github.com/jdberry/tag

Es scheint keine Rekursionsoption zu geben, aber ich könnte mir vorstellen, dass Sie diese in Verbindung mit dem Standard-UNIX-„find“ verwenden könnten.

zB (aus dem Verzeichnis, in dem Sie Dateien markieren möchten)

find . -exec tag --add tagname {} \;  -print 
Die aktuelle Version (Tag v0.8.1) unterstützt rekursives Tagging mittag -e -d --add tagname path

Eine einfache Möglichkeit, dies zu tun, besteht darin, eine Spotlight-Suche zu verwenden, um eine Liste aller Dateien zu erstellen, an denen Sie interessiert sind. Ein Beispiel dafür:

  • Navigieren Sie im Finder zum Anfang der Ordnerstruktur, die Sie interessiert.
  • Geben Sie -kind:folderin das Spotlight-Suchfeld ein

    Dadurch wird nach allen Dateien gesucht, die kein Ordner sind (das -Zeichen negiert die Ergebnisse).

  • Stellen Sie dann sicher, dass Sie die Suche auf die Ordnerhierarchie einschränken, die Sie interessiert, indem Sie auf den Namen des Ordners in den Suchbegriffen direkt unter dem Spotlight-Suchfeld klicken.

Sie haben jetzt in Ihrem Finder-Fenster eine Liste aller Dateien in dieser Ordnerhierarchie. Jetzt ist es trivial, alle Dateien auszuwählen und die gewünschten Tags auf die übliche Weise mit dem Finder anzuwenden.

Verwenden Sie verschiedene Spotlight-Suchen, um Ihren Anforderungen gerecht zu werden.

Sie können diesen Vorgang etwas vereinfachen, indem Sie Spotlight immer im aktuellen Ordner suchen lassen und nicht This Mac:

Finder -> Preferences -> Advanced -> When performing a search: Search the current folder

Gehen Sie zum obersten Ordner und suchen Sie nach „.“ innerhalb dieses Ordners.

Wählen Sie alle Dateien aus und markieren Sie sie.

Möglicherweise müssen Sie das Tag entfernen und dann erneut anwenden.