Estou tentando definir LS_COLORS
para colorir minha saída ls, mas por algum motivo ele está ignorando todos os padrões de correspondência de arquivo. Ele está colorindo corretamente executáveis, diretórios, etc., mas parece estar ignorando completamente qualquer um dos meus padrões de correspondência de arquivo começando com *.
Sei que a string em si está correta porque tentei em outra máquina e funciona conforme o esperado. Eu também sei que eles não estão sendo substituídos pelos valores catch-all como fi
e di
porque quando eu removo essas partes da LS_COLORS
string, simplesmente não obtenho nenhuma saída colorida. Confirmei que estou usando GNU ls e não algum outro tipo de ls.
A string em si é bem longa, mas aqui está uma versão truncada que criei para teste (é igual ao meu real LS_COLORS
, acabei de remover cerca de 200 extensões do início da string):
*.war=38;5;215:*.wav=38;5;136;1:*.webloc=38;5;116:*.webm=38;5;115:*.webp=38;5;97:*.wma=38;5;137;1:*.wmv=38;5;114:*.woff=38;5;66:*.woff2=38;5;66:*.wrl=38;5;216:*.wv=38;5;136;1:*.wvc=38;5;136;1:*.xcconfig=1:*.xcf=38;5;7:*.xcsettings=1:*.xcuserstate=1:*.xcworkspacedata=1:*.xib=38;5;208:*.xla=38;5;76:*.xln=38;5;7:*.xls=38;5;112:*.xlsx=38;5;112:*.xlsxm=38;5;112;4:*.xltm=38;5;73;4:*.xltx=38;5;73:*.xml=38;5;178:*.xpi=38;5;215:*.xpm=38;5;97:*.xsd=38;5;178:*.xsh=38;5;41:*.yaml=38;5;178:*.yml=38;5;178:*.z[0-9]{0,2}=38;5;239:*.zcompdump=38;5;241:*.zig=38;5;81:*.zlogin=1:*.zlogout=1:*.zprofile=1:*.zsh=38;5;172:*.zshenv=1:*.zwc=38;5;241:*.zx[0-9]{0,2}=38;5;239:bd=38;5;68:ca=38;5;17:cd=38;5;113;1:di=38;5;30:do=38;5;127:ex=38;5;208;1:pi=38;5;126:fi=0:ln=target:mh=38;5;222;1:no=0:or=48;5;196;38;5;232;1:ow=38;5;220;1:sg=48;5;3;38;5;0:su=38;5;220;1;3;100;1:so=38;5;197:st=38;5;86;48;5;234:tw=48;5;235;38;5;139;3:
Alguma ideia do que pode estar acontecendo aqui?
(tl;dr para qualquer outra pessoa que encontrar isso: verifique novamente se os arquivos que você está vendo não são executáveis por você. Se forem, todos receberão a cor da seção 'ex' em $ LS_COLORS em vez da cor correspondente à sua extensão.)
Acontece que foi um erro do operador. Todos os arquivos em meu diretório de teste foram definidos inesperadamente como executáveis e, portanto, todos receberam a cor que atribuí aos arquivos executáveis (laranja). Quando removi manualmente o bit executável de arquivos com uma extensão que deveria ser colorida com base no conteúdo de $LS_COLORS, funcionou conforme o esperado.