Eu ensino um curso de Introdução ao UNIX/Linux em uma faculdade local e um dos meus alunos fez a seguinte pergunta:
Por que alguns dos arquivos em meu diretório são de cor branca e outros são de cor cinza? Os brancos são os que criei hoje e os cinzas são arquivos existentes?
Ao analisar isso, primeiro pensei que a resposta estaria na LS_COLORS
variável, mas uma investigação mais aprofundada revelou que as listagens de cores eram diferentes ao usar o -l
switch versus o -al
switch com o ls
comando. Veja as seguintes capturas de tela:
Usando ls -l
o arquivo chamado '3' aparece em branco, mas usando o -al
switch o mesmo arquivo mostra um cinza.
Isso é um bug no ls ou alguém sabe por que isso está acontecendo?
Parece que seu prompt-string (
$PS1
) está definindo o atributo bold nos caracteres para tornar as cores mais agradáveis, e não desdefinindo -o. A saída dels
não sabe sobre isso e não define negrito. Assim, após a primeira saída de cor dels
, tudo parece mais escuro.Toda a saída de ls será impressa na última cor ativa . If
ls
é chamado sem cor:imprimirá a lista de arquivos em vermelho .
Ou, se não houver mudança de cor necessária para ls, a última cor permanecerá:
Ainda assim, tudo em vermelho.
Mas, assim que
ls
precisar definir uma cor (e depois redefinir as cores para o padrão usado pelo console), a cor usada a partir de então será o padrão do console.Com as três primeiras linhas (até o ponto azul) impressas em vermelho.