¿Cómo hago para que ls --color = auto funcione en Mac OS X?

Respuestas:

79

lsen realidad está separado de Bash. Mac OS X tiene una versión BSD de ls, que requiere -Gen la línea de comandos, o CLICOLOR(y tal vez LSCOLORS) en el entorno.

Ver man lspara más información.

DoeNietZoMoeilijk
fuente
55
Ídem. He alias ls='ls -G'configurado mi .bashrc en Snow Leopard.
ayaz
Por alguna razón, CLICOLOR=Ydejé de trabajar en mi Mac. alias ls='ls -G'obligaría lsa colorear. Lo defino solo para terminales interactivos.
DKroot
31

Abra la ventana de terminal y escriba:

alias ls='ls -G'

Entonces golpeó Entery listo!

Safran Ali
fuente
10

Utiliza Homebrew .

brew install coreutils

Tenga en cuenta que esto arrojará un prefijo gdelante de todos los comandos (por ejemplo, glspara ls). Ofrece una opción para obtener un archivo que los alias automáticamente.

No estaba seguro de si había una opción para instalarlos directamente sin tener que hacer todo el alias, así que en su lugar instalé MacPorts e hice esto .

ifightcrime
fuente
1
La salida dice: Si realmente necesita usar estos comandos con sus nombres normales, puede ... ¿Por qué realmente enfatiza ? ¿Cuáles son las desventajas?
z0r
Y nunca archivó su página en archive.org y ahora su enlace en su último párrafo se ha ido
barlop
5

compatibilidad para GNU y * BSD / darwin ls

~ / .profile

#for *BSD/darwin
export CLICOLOR=1

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

~ / .bashrc (no recuerdo si bash en Linux siempre lee ~ / .profile, pero no mi zsh en ARCH)

[[ -f $HOME/.profile ]] && source $HOME/.profile
Victor Gavro
fuente
66
¿Puedes explicar este código?
bwDraco
1
establecer la variable de entorno CLICOLOR para los sistemas * BSD y Darwin: si está configurado ls y posiblemente otras utilidades funcionarían en color, pero GNU ls (para Linux) lo ignora. Si "ls --color = auto" no falla (estado de salida = 0), tenemos la versión GNU de ls y hacemos un alias para dibujar códigos de color en modo interactivo, si falla, entonces no necesitamos alias debido a CLICOLOR variable. "&> / dev / null" simplemente no muestra stderr y stdout si algo falla o si está bien. Funciona para mi linux y osx. (ps bash en osx y freebsd no lee .bashrc, así que póngalo en .profile. ya lo arregló).
Victor Gavro
2

Deberá instalar una versión alternativa de ls. El que generalmente se usa en Linux es del proyecto GNU coreutils .

Puede construir e instalar o instalar desde macports , fink o homebrew .

Doug Harris
fuente
44
Eso es exagerado, en mi opinión. No necesita instalar una versión separada de lscuando la misma característica es compatible de manera ligeramente diferente en la versión existente de ls.
ayaz
Buen punto. Por otra parte, el color ls nunca ha sido mi gusto. alias ls='ls -F'
Doug Harris
alias ls='ls -FG'-- ¡Es lo mejor de ambos mundos!
mipadi
1
Hago esto usando homebrew. No es excesivo si usa computadoras Mac y * nix y desea que sus terminales se vean iguales, esto le permite usar los mismos archivos de configuración en todas las computadoras. Se instala como glsy no reemplaza el original, por lo que realmente no hay inconveniente.
senderle
1

Uso este script de Perl que escribí en AIX . Es útil si está en un sistema que no es compatible --color, y también donde no tiene sudo para instalar paquetes.

También debería funcionar en Macintosh.

Erik Aronesty
fuente