Kann ich das Farbetikett einer Datei im Terminal auf eine bestimmte Farbe einstellen?
Ich weiß, dass der folgende Befehl einige Informationen über die aktuelle Farbe auflistet, aber ich kann nicht herausfinden, wie ich etwas dagegen tun soll. Wie es zu ändern.
mdls -name kMDItemFSLabel somefile.ext
Der Grund, den ich wissen möchte, ist, dass ich alle Dateien in einem Ordner eines bestimmten Typs mit einem bestimmten Farbetikett (in meinem Fall grau) rekursiv markieren möchte.
Ich weiß, wie ich das finde:
find . -name "*.ext"
Und ich weiß, wie ich den Befehl anschließend für jede Datei mit ausführen kann -exec
, aber ich muss wissen, wie die eigentliche Beschriftung erfolgt ...
Ich hätte gerne eine Lösung, die nur Befehle beinhaltet, die in Mac OS X integriert sind. Also vorzugsweise keine Sachen von Drittanbietern, es sei denn, es gibt keinen anderen Weg.
osascript -e "sage der App \" Finder \ ", dass sie den Beschriftungsindex der POSIX-Datei (\" / junk.txt \ ") auf 1 setzen soll"
quelle
osascript -e "tell app \"Finder\" to set label index of POSIX file (\"/junk.txt\") to 1
Was ist, wenn junk.txt wirklichmy full/path/with spaces.txt
in einer Variablen namens gespeichert ist?$fileName
Ich habe unzählige Syntaxen und einfache Anführungszeichen, doppelte Anführungszeichen ... ausprobiert und keine davon funktioniert.File\ with\ Spaces.txt
Hier ist meine Version, basierend auf den beiden von @Lauri und @Robert. Sie bestimmen die Farbe anhand des Farbnamens, nicht anhand der Nummer. Die Farbnamen stimmen mit der Ausgabe von überein
hfsdata -L
, sodass Sie "Keine" verwenden, um der Datei keine Farbe zuzuweisen. Speichern Sie dies in einer Datei namens "setlabel" und machen Siechmod 755 setlabel
.quelle
Um sie im Finder anzuzeigen (ich weiß nicht, was Sie gefragt haben), können Sie xattr -l oder xattr -p com.apple.FinderInfo verwenden. Sie erhalten ein Flag zwischen den Nullen (1E), von denen die unteren Bits die sind color .. Mit Sachen von Drittanbietern : hfsdebug (mit sudo verwenden), um viele Informationen zu erhalten, darunter ein lesbares Farbetikett .
So ändern Sie sie mit Sachen aus dem dritten Teil: osxutils hat einen Befehl setlabel.
quelle
Dies würde die gleiche Reihenfolge für die Farben wie Finder verwenden.
stderr wird umgeleitet, da das Konvertieren eines relativen Pfads in einen Alias zu einer Warnung führt, bei der CFURLGetFSRef an diese URL übergeben wurde, für die in 10.8 kein Schema vorhanden ist . stdout wird umgeleitet, weil osascript den Wert des letzten Ausdrucks ausgibt.
quelle
Ich liebe diese Skripte, aber sie funktionierten nicht für meine Dateien, die Leerzeichen in ihren Namen verwendeten, bis ich die IFS-Einstellung für Bash innerhalb des Skripts änderte. Außerdem änderte ich die Dateieingabe, um eine Textdatei mit einer Liste von Dateinamen zu akzeptieren:
quelle
In den folgenden zwei Artikeln wird beschrieben, wie dies mithilfe von AppleScript geschehen kann, das wiederum über die Befehlszeile aufgerufen werden kann.
So richten Farbetiketten über Terminal oder Applescript
und
Tagging - Dateien mit Farben in os-x - Finder von Shell - Skripten .
quelle