Come faccio a ottenere ls --color = auto su Mac OS X?


Risposte:


72

ls è in realtà separato da Bash. Mac OS X ha una versione BSD di ls, che richiede -G sulla riga di comando, o CLICOLOR (e forse LSCOLORS ) nell'ambiente.

Vedere man ls per maggiori informazioni.


5
Idem. Io ho alias ls='ls -G' impostato nel mio .bashrc su Snow Leopard.
ayaz

Per qualche ragione, CLICOLOR=Y smesso di funzionare sul mio Mac. alias ls='ls -G' forza ls colorare. Lo definisco solo per terminali interattivi.
DKroot

29

Apri la finestra del terminale e digita:

alias ls='ls -G'

Quindi colpisci accedere e fatto!


11

Uso homebrew .

brew install coreutils

Si noti che questo genererà un prefisso di g di fronte a tutti i comandi (ad es. gls per ls ). Offre un'opzione per l'origine di un file che verrà creato automaticamente da un alias.

Non ero sicuro se ci fosse un'opzione per installarli direttamente senza dover fare l'intero alias, quindi invece in MacPorts e fatto .


1
L'output dice: Se hai davvero bisogno di usare questi comandi con i loro nomi normali, puoi ... Perché enfatizza veramente ? Quali sono gli aspetti negativi?
z0r

5

compatibilità per GNU e * BSD / darwin ls

~ / .Profile

#for *BSD/darwin
export CLICOLOR=1

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

~ / .bashrc (Non ricordo se bash su Linux legge sempre ~ / .profile, ma non il mio zsh su ARCH)

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

6
Puoi spiegare questo codice?
bwDraco

1
impostando la variabile d'ambiente CLICOLOR per i sistemi * BSD e Darwin - se è impostato su ls e probabilmente altre utility funzionerebbero a colori, ma GNU ls (per Linux) lo ignora. Se "ls --color = auto" non fallisce (exit status = 0) - abbiamo la versione GNU di ls e facciamo l'alias per disegnare i codici colore in modalità interattiva, se fallisce - quindi non abbiamo bisogno dell'alias a causa di CLICOLOR variabile. "& amp; & gt; / dev / null" non mostra semplicemente stderr e stdout se qualcosa non funziona o se è ok. Funziona con il mio linux e osx. (p.s. bash su osx e freebsd non legge .bashrc, quindi mettilo in .profile. già risolto).
Victor Gavro

2

Dovrai installare una versione alternativa di ls. Quello normalmente usato in Linux è dal Coreutils GNU progetto.

Potresti creare, installare o installare da macports , fink o homebrew .


4
Questo è eccessivo, secondo me. Non è necessario installare una versione separata di ls quando la stessa funzionalità è supportata in modo leggermente diverso sulla versione esistente di ls.
ayaz

Buon punto Poi di nuovo, il colore non è mai stato il mio gusto. alias ls='ls -F'
Doug Harris

alias ls='ls -FG' - È il migliore di entrambi i mondi!
mipadi

Lo faccio usando l'homebrew. Non è eccessivo se si utilizzano computer Mac e * nix e si desidera che i terminali abbiano lo stesso aspetto: questo consente di utilizzare gli stessi file di configurazione su tutti i computer. È installato come gls e non sostituisce l'originale quindi non c'è davvero alcun svantaggio.
senderle

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.