Wie listen Sie Artikel mit und ohne Etiketten vom Terminal aus auf?

Gibt es einen Befehl, der den Etikettenstatus (Etiketten wie im Infomenü im Finder cmd + i angewendet) eines Elements über die Befehlszeile in OS X anzeigen kann? Im Wesentlichen möchte ich nur alle Elemente mit oder ohne Labels im aktuellen Verzeichnis auflisten, aber ich kann keine Möglichkeit finden, sie auseinander zu ziehen.

Dies hilft beim Erstellen eines zeitgesteuerten Skripts, das im Hintergrund ausgeführt wird. Dann kann ich im Finder ein Label anwenden und erwarten, dass eine Aktion automatisch auf diese Datei angewendet wird, ohne besondere Bedingungen stellen oder eine kuratierte Datei mit einer Liste führen zu müssen.

Antworten (2)

Mit lskönnen Sie die erweiterten Metadaten von Dateien anzeigen:

$ ls -l@
-rw-r--r--@ 1 andrew  staff  1292910 Aug  9 11:36 labelled_file.jpg
    com.apple.metadata:kMDLabel_hlsi7t7nerhynemqvydgeb26de       50 

Der schnellste Weg, beschriftete und unbeschriftete Dateien zu erhalten, ist jedoch eine Attributsuche mit mdfind:

$ mdfind -onlyin . -literal 'kMDItemFSLabel > 0'  # labels have value 50
/cwd/labelled_file.jpg

$ mdfind -onlyin . -literal 'kMDItemFSLabel == 0'
/cwd/all.jpg
/cwd/other.jpg
/cwd/files.jpg

Sie können verwenden

xattr -p com.apple.FinderInfo filename

aber Sie werden etwas Arbeit brauchen, um die Ausgabe zu verarbeiten. Siehe diese Antwort auf Superuser für ein Beispiel mit einem Bash-Skript und eines mit Python.

@dat5h Wenn Sie eine Antwort nützlich finden, geben Sie bitte eine Gegenstimme ab und wählen Sie eine der Antworten als "akzeptiert" aus.
Danke, dass du mich daran erinnert hast, als akzeptiert zu markieren, hatte ich vergessen. Außerdem würde ich Upvotes geben, wenn ich den erforderlichen Ruf hätte.