Odpowiedzi:
Zakładając, że używasz GNU ls, możesz określić kolory za pomocą zmiennej środowiskowej LS_COLORS (zauważ, że jest to lsfunkcja GNU i nie jest specyficzna dla zsh).
GNU Coreutils ma program wywoływany, dircolorsaby pomóc Ci przekonwertować łatwy do edycji plik konfiguracyjny na odpowiednią (skomplikowaną) zmienną LS_COLORS. Zobacz man dircolorspolecenie i man dir_colorsskładnię pliku konfiguracyjnego.
Możesz
dircolors --print-database >! dircolors.defaultaby zapisać wartości domyślne (zawiera tekst objaśnienia), a następnie zmodyfikuj go.Po zakończeniu musisz dircolorszmienić to w odpowiednią LS_COLORS. Zauważ, że dane dircolorswyjściowe są w formacie bash i csh, ponieważ zshpowinieneś użyć bashwyjścia sformatowanego.
PS: Użyj ls --color=autozamiast ls --color=tty.
LS_COLORz jakiegoś powodu nie działa domyślnie na zsh. Zobacz wiele innych postów narzekających na to: 1) superuser.com/questions/700406/zsh-not-recognizing-ls-colors 2) github.com/robbyrussell/oh-my-zsh/issues/5349