Domanda

Quando si esegue ls in una shell bash, a volte ci sono i colori per indicare diversi tipi di risorse, ed è possibile abilitare / controllare questo con l'argomento --color.

Ma né la pagina di uomo né di Google è fornire una risposta alla domanda:

Cosa significano questi colori indicano per impostazione predefinita, e come si visualizzano ciò che utilizza il sistema attuale?


UPDATE:

Grazie a tutti per le risposte finora, ma per rendere più facile scegliere un vincitore, chiunque può fare un passo ulteriore e di fornire un metodo per le descrizioni di uscita nei colori cui si riferiscono.

Hmmm ... il mio esempio non funziona al momento della pubblicazione (solo quando in anteprima), quindi se si visualizza l'anteprima di questo codice che verrà visualizzato quello che voglio 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>

Grazie.

È stato utile?

Soluzione

I colori sono definiti dalla variabile di ambiente $LS_COLORS. A seconda della vostra distro, viene generato automaticamente quando la shell si avvia, utilizzando ~/.dircolors o /etc/DIR_COLORS.

Modifica

Per elencare i significati dei colori, utilizzare questo 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
}

Altri suggerimenti

L'esecuzione del comando dircolors -p stamperà tutte le impostazioni di colore di default. Vedere http://linux.about.com/library/cmd/blcmdl1_dircolors.htm.

Si dovrebbe essere in grado di vedere l'elenco delle mappature in / etc / DIR_COLORS. È possibile ignorare che con la creazione .dir_colors nella vostra directory home.

Prova "man 5 dir_colors" per vedere come è impostato sul sistema. Il mio non ha / etc / DIR_COLORS quindi deve essere impostato da qualche altra parte.

Google LS_COLORS per alcuni link utili.

Modifica Per elencare i colori, questo semplice script bash può dare un'idea:

IFS=:
set $LS_COLORS
for C in $*
do
    IFS='='
    set $C
    echo -e "\033[$2m$1\033[00m"
done
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top