Comment faire en sorte que ls --color = auto fonctionne sur Mac OS X?


Réponses:


79

lsest en fait séparé de Bash. Mac OS X a une version BSD de ls, qui nécessite -Gsur la ligne de commande ou CLICOLOR(et peut-être LSCOLORS) dans l'environnement.

Voir man lspour plus d'informations.


5
Idem. Je suis alias ls='ls -G'dans mon .bashrc sur Snow Leopard.
ayaz

Pour une raison quelconque, a CLICOLOR=Ycessé de travailler sur mon Mac. alias ls='ls -G'forcerait lsà colorier. Je définis cela uniquement pour les terminaux interactifs.
DKroot

31

Ouvrez la fenêtre du terminal et tapez:

alias ls='ls -G'

Alors frappe Enteret c'est fait!


10

Utilisez Homebrew .

brew install coreutils

Notez que cela jettera un préfixe gdevant toutes les commandes (par exemple, glspour ls). Cela donne la possibilité de créer un fichier qui les aliasera automatiquement pour vous.

Je n'étais pas sûr s'il y avait une option pour les installer directement sans avoir à faire tout le processus de pseudonyme, donc à la place, dans MacPorts installé et cela .


1
La sortie indique: Si vous avez vraiment besoin d'utiliser ces commandes avec leurs noms normaux, vous pouvez ... Pourquoi insiste-t-il vraiment ? Quels sont les inconvénients?
Z0r

Et vous n'avez jamais archivé votre page sur archive.org et maintenant votre lien dans votre dernier paragraphe a disparu
barlop

5

compatibilité pour GNU et * BSD / darwin ls

~ / .profile

#for *BSD/darwin
export CLICOLOR=1

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

~ / .bashrc (je ne me souviens pas si bash sur Linux lit toujours ~ / .profile, mais pas mon zsh sur ARCH)

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

6
Pouvez-vous expliquer ce code?
bwDraco

1
définition de la variable d’environnement CLICOLOR pour les systèmes * BSD et Darwin - s’il est défini, ainsi que d’autres utilitaires fonctionneraient en couleur, mais GNU ls (pour Linux) l’ignore. Si "ls --color = auto" n'échouera pas (état de sortie = 0) - nous avons la version GNU de ls et faisons alias pour dessiner des codes de couleur en mode interactif, si cela échoue - alors nous n'avons pas besoin d'alias à cause de CLICOLOR variable. "&> / dev / null", ne montrez simplement pas stderr et stdout si quelque chose échoue ou si tout va bien. Fonctionne pour mon linux et osx. (ps bash sur osx et freebsd ne lit pas .bashrc, mettez-le donc dans .profile. corrigez-le déjà).
Victor Gavro

2

Vous devrez installer une autre version de ls. Celui habituellement utilisé sous Linux provient du projet GNU coreutils .

Vous pouvez construire et installer ou installer depuis macports , fink ou homebrew .


4
C'est exagéré, à mon avis. Vous n'avez pas besoin d'installer une version distincte de lslorsque la même fonctionnalité est prise en charge légèrement différemment sur la version existante de ls.
ayaz

Bon point. Là encore, la couleur n'a jamais été à mon goût. alias ls='ls -F'
Doug Harris

alias ls='ls -FG'- c'est le meilleur des deux mondes!
Mipadi

1
Je le fais en utilisant homebrew. Ce n'est pas exagéré si vous utilisez à la fois des ordinateurs Mac et * Nix et souhaitez que vos terminaux aient la même apparence - ceci vous permet d'utiliser les mêmes fichiers de configuration sur tous les ordinateurs. Il est installé en tant que glset ne remplace pas l'original, il n'y a donc aucun inconvénient.
Senderle

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.