Como faço para que ls --color = auto trabalhe no Mac OS X?


Respostas:


79

lsé realmente separado do Bash. O Mac OS X possui uma versão BSD de ls, que requer -Gna linha de comando ou CLICOLOR(e talvez LSCOLORS) no ambiente.

Veja man lspara mais informações.


5
Idem. Eu coloquei alias ls='ls -G'no meu .bashrc no Snow Leopard.
Ayaz

Por algum motivo, CLICOLOR=Yparei de trabalhar no meu Mac. alias ls='ls -G'forçaria lsa colorir. Eu defino isso apenas para terminais interativos.
DKroot 15/10

31

Abra a janela do terminal e digite:

alias ls='ls -G'

Então bateu Entere pronto!


10

Use Homebrew .

brew install coreutils

Observe que isso lançará um prefixo gna frente de todos os comandos (por exemplo, glspara ls). Ele oferece a opção de obter um arquivo que os alias automaticamente para você.

Eu não tinha certeza se havia uma opção para instalá-los diretamente, sem ter que fazer todo o alias, então instalei o MacPorts e fiz isso .


11
A saída diz: Se você realmente precisa usar esses comandos com seus nomes normais, pode ... Por que isso realmente enfatiza ? Quais são as desvantagens?
Z0r 8/11

E você nunca arquivou sua página no archive.org e agora seu link no último parágrafo se foi
barlop 04/04

5

compatibilidade para GNU e * BSD / darwin ls

~ / .profile

#for *BSD/darwin
export CLICOLOR=1

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

~ / .bashrc (não me lembro se o bash no Linux sempre lê ~ / .profile, mas não o meu zsh no ARCH)

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

6
Você pode explicar esse código?
bwDraco

11
configurando a variável de ambiente CLICOLOR para os sistemas * BSD e Darwin - se estiver definido ls e possivelmente outros utilitários funcionarem em cores, mas o GNU ls (para Linux) a ignora. Se "ls --color = auto" não falhar (status de saída = 0) - temos a versão GNU de ls e criamos um alias para desenhar códigos de cores no modo interativo, se falhar - então não precisamos do alias por causa do CLICOLOR variável. "&> / dev / null" simplesmente não mostra stderr e stdout se algo falhar ou se estiver ok. Funciona para o meu linux e osx. (ps bash no osx e freebsd não lê .bashrc, coloque-o no .profile. já o corrigiu).
Victor Gavro

2

Você precisará instalar uma versão alternativa do ls. O normalmente usado no linux é do projeto GNU coreutils .

Você pode criar e instalar ou instalar a partir de macports , fink ou homebrew .


4
Isso é um exagero, na minha opinião. Você não precisa instalar uma versão separada de lsquando o mesmo recurso é suportado de maneira um pouco diferente na versão existente do ls.
Ayaz

Bom ponto. Então, novamente, sl colorido nunca foi do meu gosto. alias ls='ls -F'
Doug Harris

alias ls='ls -FG'- é o melhor dos dois mundos!
Mipadi

11
Eu faço isso usando homebrew. Não é um exagero se você usa computadores Mac e * nix e deseja que seus terminais tenham a mesma aparência - isso permite que você use os mesmos arquivos de configuração em todos os computadores. Ele é instalado como glse não substitui o original, então não há realmente nenhuma desvantagem.
senderle

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.