Почему установка CLICOLOR = 1 не включает цвета для «ls»?

1

Если я сделаю ls -GЯ делать получить цвета. Из того, что я понял из страниц руководства, если я зайду в ~/.bash_profile и добавить export CLICOLOR=1 Я бы тогда получил цвета, просто делая ls, как «Эта опция эквивалентна определению CLICOLOR в среде».

Я правильно понимаю? Потому что он не работает для меня на Yosemite 10.10.5 в bash с доморощенным coreutils (не уверен, насколько это актуально). Я пытался добавить это в ~./bashrc но то же самое. Я всегда могу просто присвоить псевдониму ls -G, но я хочу сделать это «правильным» способом. Я также попытался добавить export LSCOLORS=... но это тоже не помогло. Как я уже сказал, я делать получить цвета с -G, но я бы хотел получить их по умолчанию, просто набрав ls и не нужно устанавливать для него псевдоним, если только мое понимание того, как это работает, неверно.

Tommy K
источник
1
Если вы установите переменную вручную в вашей активной оболочке, есть ли у ls цвета? Возможно, ваш bash_profile либо не получен, либо по какой-то причине перезаписан
Vitalydotn
Что произойдет, если вы запустите CLICOLOR=1 \ls ~ («намеренно»)?
nohillside
Увидеть apple.stackexchange.com/questions/125060/... также
nohillside
Вы, вероятно, не нашли файл. Бежать . ~/.bash_profile
JBallin

Ответы:

1

Несколько вопросов.

Доморощенный coreutils ls не OSX / freebsd ls. Coreutils - это GNU, и ls использует --colors вместо -G. -G в gnu ls означает не показывать группы. Он также не использует CLICOLOR. Не существует переменной среды для установки цветов для gnu ls.

В OSX ls использует -G в качестве параметра командной строки, так же, как при экспорте CLICOLOR в качестве переменной среды.

Таким образом, вы используете неправильную переменную для неправильной команды.

cde
источник