Angenommen, ich habe eine Verzeichnisstruktur wie
/Users
/tlehman
/Math
algebraic_varieties.tex [tagged: Math, Documentation]
projective_geometry.pdf [tagged: Math]
/Development
visualize_surfaces.py [tagged: Math, Programming]
solve_polynomials.scm [tagged: Math]
/guest
/Desktop
welcome.rtf [tagged: Documentation]
/Volumes
/USBKey
assignments_for_may.txt [tagged: Math]
using_LaTeX.pdf [tagged: Documentation]
Kann ich über die Befehlszeile ls
alle Dateien anzeigen, die mit "Math" markiert sind?
BEARBEITEN: Ich habe ein Tool namens erstellt tfind
, das dies tut: https://github.com/tlehman/bin/blob/master/tfind
macos
command-line
filesystem
mavericks
tlehman
quelle
quelle
tag
von James Berry bei zuhttps://github.com/jdberry
. Sie können es über installierenbrew install tag
, ein Tag über hinzufügen, Tags übertag -a <tag> <file>
suchentag -f <tag1, tag2>
. Sehr, sehr praktisch, ich benutze es die ganze Zeit.tag
Befehl bekommen. Lässt sich sehr einfach per Brew installieren.Antworten:
Ich gehe davon aus, dass sie ein xattr sein werden, wie sie derzeit auf 10.8.3 (und älter) sind.
Derzeit können Sie anzeigen, mit welchen erweiterten Attributen eine Datei ausgestattet ist
ls -l@
.Aber um den Inhalt der Attribute zu sehen, müssen Sie verwenden
xattr
.quelle
xattr -pl com.apple.metadata:_kMDItemUserTags filename
. Es war jedoch keine sehr freundliche Ausgabe.Ja, Sie können Dateien mit einem bestimmten Benutzer-Tag mithilfe von finden
mdfind
.Erstellen Sie eine Datei und weisen Sie ihr im Finder ein benutzerdefiniertes Tag zu.
Dann gehen Sie in ein Terminal; Sie finden es mit:
oder
Siehe auch
-onlyin aFolder
, um die Suche einzuschränken.Ich habe nicht überprüft, wie komplex diese booleschen Ausdrücke sein können, aber diese beiden Beispiele funktionieren.
Sie können die Ausgabe
ls
so umleiten:Außerdem hat mdfind eine Option "-0"
das kann praktisch sein mit bösen Dateinamen.
quelle
mdfind
Syntax für Tags, zum Beispiel:mdfind "tag:Math"
,mdfind "tag:Math OR tag:Programming"
Sie können alle Tags einer Datei erhalten mit:
mdls -name kMDItemUserTags filename
quelle