Czy istnieje sposób, aby ustawić kolor etykiety pliku na jakiś kolor, gdy jest on w terminalu?
Wiem, że następujące polecenie wyświetla informacje o tym, jaki jest obecnie kolor, ale nie mogę wymyślić, jak coś z tym zrobić. Jak to zmienić.
mdls -name kMDItemFSLabel somefile.ext
Powodem, dla którego chciałbym wiedzieć, jest to, że chcę rekurencyjnie oznaczać wszystkie pliki w folderze określonego typu za pomocą określonej kolorowej etykiety (w moim przypadku szarej).
Wiem, jak to zrobić:
find . -name "*.ext"
Wiem, jak mogę później uruchomić polecenie dla każdego pliku -exec
, ale muszę wiedzieć, jak wykonać właściwe etykietowanie ...
Chciałbym rozwiązania, które dotyczy tylko poleceń wbudowanych w system Mac OS X. Dlatego najlepiej nie ma żadnych programów innych firm, chyba że nie ma innego wyjścia.
osascript -e „powiedz aplikacji \” Finder \ ”, aby ustawić indeks etykiety pliku POSIX (\" / junk.txt \ ") na 1"
źródło
osascript -e "tell app \"Finder\" to set label index of POSIX file (\"/junk.txt\") to 1
Co jeśli plik junk.txt jest naprawdęmy full/path/with spaces.txt
przechowywany w zmiennej o nazwie$fileName
Próbowałem niezliczonych składni i pojedynczych cudzysłowów, podwójnych cudzysłowów ... i żadna z nich nie działa.File\ with\ Spaces.txt
Oto moja wersja, oparta na dwóch z @Lauri i @Robert. Kolor określasz za pomocą nazwy koloru, a nie liczby. Nazwy kolorów są zgodne z danymi wyjściowymi
hfsdata -L
, więc używasz „Brak”, aby nie przypisywać koloru do pliku. Zapisz to w pliku o nazwie „setlabel” i zrób tochmod 755 setlabel
.źródło
Aby wyświetlić je w Finderze (wiem, że nie to, o co prosiłeś), możesz użyć xattr -l lub xattr -p com.apple.FinderInfo, otrzymasz flagę pomiędzy zerami (1E), których dolne bity to color .. Z materiałami innych firm: hfsdebug (użyj z sudo), aby uzyskać wiele informacji, w tym czytelną etykietę koloru.
Aby zmienić je za pomocą rzeczy trzeciej części: osxutils ma polecenie setlabel.
źródło
Użyłoby to tej samej kolejności kolorów co Finder.
stderr jest przekierowywany, ponieważ konwersja ścieżki względnej na alias powoduje ostrzeżenie, takie jak CFURLGetFSRef przekazano ten adres URL, który nie ma schematu na 10.8. standardowe wyjście jest przekierowywane, ponieważ osascript drukuje wartość ostatniego wyrażenia.
źródło
Uwielbiam te skrypty, jednak nie działały one dla moich plików, które używały spacji w swoich nazwach, dopóki nie zmieniłem ustawienia IFS dla bash w skrypcie, a także zmieniłem wejście pliku, aby zaakceptować plik tekstowy z listą nazw plików:
źródło
Oto dwa artykuły opisujące, jak to zrobić za pomocą AppleScript, które z kolei można wywołać z wiersza poleceń.
Jak ustawić kolorową etykietę za pomocą terminalu lub skryptu jabłkowego
i
oznaczać pliki kolorami w wyszukiwarce os-x ze skryptów powłoki .
źródło