Pode haver algo mais acontecendo. lsnão deve usar cores, a menos que pense estar conectado a algo interativo. Não deve colorir as coisas quando você canaliza para outro programa.
Um alias geralmente é uma má idéia, porque você nunca pode se livrar dessa opção e se acostuma a configurações pessoais que talvez não consiga levar consigo para outra máquina em que você precise trabalhar. Se você precisar desativá-lo para canalizá-lo para outra coisa, use o interruptor desse tubo. Mas, as cores não devem estar lá em um cano.
Para ls, veja se o seu suporta a LS_COLORSvariável de ambiente. O trapd00r / LS_COLORS mostra como isso funciona. dircolors permite ajustar minuciosamente as cores e por tipo de arquivo. Se você não definir, LS_COLORSmas a cor estiver ativada, lsfará várias chamadas do sistema para descobrir os tipos e atributos de arquivo, para que ele possa descobrir o que colorir. As pessoas por trás de Sherlock descobriram que a configuração LS_COLORSpode evitar tudo isso e melhorar a velocidade em 40 vezes . Leia os detalhes sangrentos para ver o que encontraram.
Eu faço todos os tipos de arquivo usarem as cores padrão:
$ export LS_COLORS='bd=0:ca=0:cd=0:di=0:do=0:ex=0:pi=0:fi=0:ln=0:mh=0:no=0:or=0:ow=0:sg=0:su=0:so=0:st=0:tw=0:'
Aqui está o arquivo LS_COLORS que eu forneci para os dircolors:
BLK 0
CAPABILITY 0
CHR 0
DIR 0
DOOR 0
EXEC 0
FIFO 0
FILE 0
LINK 0
MULTIHARDLINK 0
NORMAL 0
ORPHAN 0
OTHER_WRITABLE 0
SETGID 0
SETUID 0
SOCK 0
STICKY 0
STICKY_OTHER_WRITABLE 0
Para grep, veja se o seu suporta GREP_COLORSou GREP_OPTIONS.
lsegrepao canalizar, você não precisa fazer nada, porque--color=autojá desativa a coloração quando sua saída é um tubo ou, na verdade, qualquer coisa, menos um tty; isso é o que 'auto' significa. Da mesma forma, o FreeBSDls -Gou 'CLICOLOR' é 'desativado se a saída não for direcionada para um terminal, a menos que ... CLICOLOR_FORCE ...'.