Como posso listar LS_COLORS em cores?

5

Lembro-me de que eval "dircolors -b" costumava exibir as cores que LS_COLORS estava usando, com base nos tipos ou extensões de arquivo. Não foram apenas os valores de cor exibidos , mas as próprias cores. Eu pude ver a cor na qual um arquivo .png ou .ogg seria exibido e alterá-lo se necessário por meio de um arquivo personalizado .

Acho que a saída de eval "dircolors -b" não tem mais cor.

Alguém pode gentilmente explicar como eu posso recuperá-lo? Talvez alguma variável de ambiente não esteja configurada. Caso contrário, existe uma solução alternativa?

    
por chandra 23.10.2012 / 12:17

2 respostas

6

Experimente este script:

( # Run in a subshell so it won't crash current color settings
    dircolors -b >/dev/null
    IFS=:
    for ls_color in ${LS_COLORS[@]}; do # For all colors
        color=${ls_color##*=}
        ext=${ls_color%%=*}
        echo -en "\E[${color}m${ext}\E[0m " # echo color and extension
    done
    echo
)

Saída:

    
por 23.10.2012 / 16:01
0

Esta versão tem algumas informações adicionais e não colore as linhas inteiras:

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       
}

Parte da resposta por @ karthick87 no Askubuntu Review, Além disso, veja esta resposta: O que causa esse verde fundo na saída ls?

    
por 20.12.2014 / 11:03

Tags