ls ignoriert Erweiterungen beim Kolorieren mit LS_COLORS

ls ignoriert Erweiterungen beim Kolorieren mit LS_COLORS

Ich versuche, LS_COLORSmeine ls-Ausgabe farblich zu kennzeichnen, aber aus irgendeinem Grund werden alle Dateiübereinstimmungsmuster ignoriert. Ausführbare Dateien, Verzeichnisse usw. werden korrekt gefärbt, aber alle meine Dateiübereinstimmungsmuster, die mit * beginnen, werden anscheinend vollständig ignoriert.

Ich weiß, dass die Zeichenfolge selbst korrekt ist, weil ich sie auf einem anderen Computer ausprobiert habe und sie wie erwartet funktioniert. Ich weiß auch, dass diese nicht von den Catch-All-Werten wie fiund überschrieben werden di, weil ich beim Entfernen dieser Teile der LS_COLORSZeichenfolge einfach keine farbige Ausgabe erhalte. Ich habe bestätigt, dass ich GNU ls und keine andere Variante von ls verwende.

Der String selbst ist ziemlich lang, aber hier ist eine gekürzte Version, die ich zu Testzwecken erstellt habe (sie ist identisch mit meinem echten String LS_COLORS, ich habe nur etwa 200 Erweiterungen vom Anfang des Strings entfernt):

*.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:

Irgendeine Idee, was hier los sein könnte?

Antwort1

(Kurzfassung für alle, denen dies ebenfalls passiert: Überprüfen Sie noch einmal, dass die Dateien, die Sie sich ansehen, nicht von Ihnen ausführbar sind. Wenn dies der Fall ist, wird ihnen allen die Farbe Ihres „ex“-Abschnitts in $LS_COLORS zugewiesen, statt der Farbe, die ihrer Erweiterung entspricht.)

Es stellte sich heraus, dass dies ein Bedienfehler war. Alle Dateien in meinem Testverzeichnis wurden unerwartet als ausführbar festgelegt und erhielten daher alle die Farbe, die ich ausführbaren Dateien zugewiesen hatte (orange). Als ich das ausführbare Bit manuell aus Dateien mit einer Erweiterung entfernte, die basierend auf dem Inhalt von $LS_COLORS eingefärbt werden sollte, funktionierte es wie erwartet.

verwandte Informationen