Pergunta

Quando você executa ls em um shell bash, às vezes há cores para indicar diferentes tipos de recursos, e você pode ativar / controlar isso com o argumento --color.

Mas nem a página do homem nem o Google está fornecendo uma resposta para a pergunta:

O que essas cores indicam por padrão, e como faço para mostrar o que os atuais usos do sistema?


UPDATE:

Obrigado a todos por respostas até agora, no entanto, para torná-lo mais fácil de escolher um vencedor, alguém pode dar um passo adiante e proporcionar um método para descrições de saída nas cores que se aplicam.

Hmmm ... o meu exemplo não funciona quando postado (somente quando visualizado), então se você visualizar o código que vai mostrar o que quero dizer ...

<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>

Graças.

Foi útil?

Solução

As cores são definidos pela variável de ambiente $LS_COLORS. Dependendo da sua distro, ele é gerado automaticamente quando o shell é iniciado, usando ~/.dircolors ou /etc/DIR_COLORS.

Editar:

Para listar significados de cores, use este 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
}

Outras dicas

A execução do dircolors -p comando irá imprimir todas as configurações de cor padrão. Consulte http://linux.about.com/library/cmd/blcmdl1_dircolors.htm.

Você deve ser capaz de ver a lista de mapeamentos no / etc / DIR_COLORS. Você pode substituir isso criando .dir_colors em seu diretório pessoal.

Tente "homem 5 DIR_COLORS" para ver como ele é definido no seu sistema. Mina não tem / etc / DIR_COLORS por isso deve ser definido em outro lugar.

O Google para LS_COLORS para alguns links úteis.

Editar: Para listar as cores, este script bash simples pode dar uma idéia:

IFS=:
set $LS_COLORS
for C in $*
do
    IFS='='
    set $C
    echo -e "\033[$2m$1\033[00m"
done
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top