Question

Lorsque vous effectuez ls dans un shell bash, parfois il y a des couleurs pour indiquer différents types de ressources, et vous pouvez activer / contrôler cela avec l'argument --color.

Mais ni la page de l'homme, ni Google fournit une réponse à la question:

Qu'est-ce que ces couleurs indiquent par défaut, et comment puis-je afficher ce que le système actuel utilise?


Mise à jour:

Merci tout le monde pour trouver des réponses à ce jour, mais pour le rendre plus facile de choisir un gagnant, quelqu'un peut-il aller plus loin et de fournir une méthode pour les descriptions de sortie dans les couleurs qu'ils appliquent à.

Hmmm ... mon exemple ne fonctionne pas lorsque affiché (seulement lors de la prévisualisation), donc si vous affichez un aperçu de ce code il va montrer ce que je veux dire ...

<ul style="list-style:none; background:black; margin:0;padding:0.5em; width:10em">
  <li style="color:blue">directory</li>
  <li style="color:aqua">symbolic link</li>
  <li style="color:#A00000;">*.tar files</li>
  <li style="color:white">...</li>
</ul>

Merci.

Était-ce utile?

La solution

Les couleurs sont définies par la variable d'environnement $LS_COLORS. En fonction de votre distro, il est généré automatiquement lorsque le shell démarre, en utilisant ~/.dircolors ou /etc/DIR_COLORS.

Modifier

Pour lister la signification des couleurs, utilisez ce script:

eval $(echo "no:global default;fi:normal file;di:directory;ln:symbolic link;pi:named pipe;so:socket;do:door;bd:block device;cd:character device;or:orphan symlink;mi:missing file;su:set uid;sg:set gid;tw:sticky other writable;ow:other writable;st:sticky;ex:executable;"|sed -e 's/:/="/g; s/\;/"\n/g')
{
  IFS=:
  for i in $LS_COLORS
  do
    echo -e "\e[${i#*=}m$( x=${i%=*}; [ "${!x}" ] && echo "${!x}" || echo "$x" )\e[m"
  done
}

Autres conseils

L'exécution de la commande dircolors -p imprime tous les paramètres de couleur par défaut. Voir http://linux.about.com/library/cmd/blcmdl1_dircolors.htm.

Vous devriez être en mesure de voir la liste des correspondances dans / etc / DIR_COLORS. Vous pouvez remplacer que par la création .dir_colors dans votre répertoire.

essayer « man 5 dir_colors » pour voir comment il est défini sur votre système. Le mien n'a pas / etc / DIR_COLORS donc il doit être quelque part ailleurs.

Google LS_COLORS pour quelques liens utiles.

Modifier Pour lister les couleurs, ce simple script bash peut donner une idée:

IFS=:
set $LS_COLORS
for C in $*
do
    IFS='='
    set $C
    echo -e "\033[$2m$1\033[00m"
done
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top