Як змусити ls --color = auto працювати на Mac OS X?


Відповіді:


78

lsнасправді відокремлений від Баша. Mac OS X має версію BSD ls, яка потрібна -Gв командному рядку або CLICOLOR(і можливо LSCOLORS) в оточенні.

Див. Для man lsотримання додаткової інформації.


5
Дітто. Я alias ls='ls -G'встановив у своєму .bashrc на Snow Leopard.
аяз

Чомусь CLICOLOR=Yперестав працювати на моєму Mac. alias ls='ls -G'змусить lsрозфарбуватися. Я визначаю це лише для інтерактивних терміналів.
DKroot


10

Використовуйте Homebrew .

brew install coreutils

Зауважте, що це викине префікс gперед усіма командами (наприклад, glsдля ls). Він надає можливість джерела файлу, який автоматично надасть вам псевдонім.

Я не був впевнений, чи існує можливість встановити їх безпосередньо без необхідності робити всю псевдонім, тому замість цього встановив MacPorts і зробив це .


1
Результат говорить: Якщо вам справді потрібно використовувати ці команди зі своїми звичайними іменами, ви можете ... Чому це дійсно наголошує ? Які недоліки?
z0r

І ви ніколи не архівували свою сторінку на archive.org, і тепер ваше посилання в останньому абзаці
відпало

5

сумісність для GNU та * BSD / darwin ls

~ / .профіль

#for *BSD/darwin
export CLICOLOR=1

ls --color=auto &> /dev/null && alias ls='ls --color=auto' ||

~ / .bashrc (я не пам'ятаю, якщо bash в Linux завжди читає ~ / .profile, але не мій zsh на ARCH)

[[ -f $HOME/.profile ]] && source $HOME/.profile

6
Чи можете ви пояснити цей код?
bwDraco

1
встановлення змінної середовища CLICOLOR для систем BSD і Darwin - якщо вона встановлена ​​ls і, можливо, інші утиліти працювали б кольоровими, але GNU ls (для Linux) це ігнорує. Якщо "ls --color = auto" не вийде (статус виходу = 0) - у нас є версія GNU ls і робить псевдонім для малювання кольорових кодів в інтерактивному режимі, якщо він не працює - тоді нам не потрібен псевдонім через CLICOLOR змінна. "&> / dev / null" просто не показувати stderr та stdout, якщо щось не вдалося або якщо це нормально. Працює для мого Linux та OSX. (ps bash на osx та freebsd не читає .bashrc, тому поставте його в .profile. вже виправлено).
Віктор Гавро

2

Вам потрібно буде встановити альтернативну версію ls. Той, який зазвичай використовується в Linux, - це проект GNU coreutils .

Ви можете створити та встановити або встановити з макпорта , фінка чи домашньої мови .


4
На мою думку, це надмірність. Вам не потрібно встановлювати окрему версію, lsколи одна і та ж функція підтримується дещо інакше в існуючій версії ls.
аяз

Влучне зауваження. Потім знову кольоровий лс ніколи не був моїм смаком. alias ls='ls -F'
Дуг Харріс

alias ls='ls -FG'- це найкраще з обох світів!
mipadi

1
Я роблю це, використовуючи домашню. Це не зайвий набір, якщо ви використовуєте комп'ютери Mac і * nix і хочете, щоб термінали виглядали однаково - це дозволяє використовувати однакові конфігураційні файли на всіх комп’ютерах. Він встановлений як glsі не замінює оригінал, тому насправді немає недоліків.
відправник

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.