Jak zrobić pliki wykonywalne listy powłoki bash w innym kolorze niż pliki niewykonywalne?
Próbowałem edytować, ~/.bashrc
aby zawierać następujący wiersz (w przeciwnym razie jest pusty):
LS_OPTIONS='--color=auto'
Ale to nie działa. Co ja robię źle? Pracuję na Mac OS X.
Problem polega na tym, że OS X nie ma GNU
ls
; chociażls
obsługuje kolorowanie nazw plików, może to zrobić tylko według typu pliku (plik, katalog, dowiązanie symboliczne, plik specjalny urządzenia, fifo, gniazdo ...). Zainstalujcoreutils
z Fink / MacPorts / HomeBrew, a następnie użyjalias ls='gls --color=auto'
.źródło
coreutils
z MacPorts. Czy powinnaalias
być linia~/.bashrc
? Tak to położyłem, ale nie widzę żadnej różnicy.~/.bash_aliases
może działać lepiej. Odkryłem również, że muszę uruchomić,eval $(gdircolors -s)
aby to skonfigurować.gdircolors: invalid option -- 's'
masz na myśli--sh
?BSD ls działa nieco inaczej
powinno działać.
I to nie jest koloryzacja, tylko koloryzacja
ls
. Kiedy bash tworzy listę plików (spróbujecho *
w katalogu), nie ma możliwości pokolorowania. Pisaniels -G
działałoby w dowolnej powłoce, chociaż ułatwia to powłoka (jak bash) z aliasami.źródło
Na komputerze Mac musisz użyć
Umieściłem to w pliku .bash_profile. Wolę jednak rozwiązanie Rich Homolka od aliasu ls z flagą -G. Jeśli chcesz dostosować kolory:
i wyszukaj LSCOLORS
źródło
Zastanów się nad zainstalowaniem
brew
i używaniem wersji GNU ls i innych narzędzi.Zainstaluj XCode z AppStore.
Zainstaluj Homebrew ...
Zainstaluj coreutils ...
Dodaj do dolnej części swojego
.profile
...Alias I
ls
w moim.profile
robić kolory dla wszystkiego i skrót do pełnej listy.Istnieje wiele
LS_COLORS
opcji na github .źródło
bash
jest tylko powłoką, nie wyświetla plików. Wykonuje polecenia, takie jakls
.--color
Opcja (i długie opcji w ogóle) jest specyficzne dla wersjils
z GNU coreutils , który pochodzi z większością dystrybucji Linuksa. Z drugiej strony Mac OS X ma korzenie BSD i używa wersji BSD,ls
która nie obsługuje kolorowania.źródło
-G
.