Es könnte noch etwas anderes los sein. ls
sollte keine Farben verwenden, es sei denn, es glaubt, mit etwas Interaktivem verbunden zu sein. Es sollte die Dinge nicht färben, wenn Sie zu einem anderen Programm weiterleiten.
Ein Alias ist in der Regel eine schlechte Idee, da Sie diese Option nie loswerden können und sich an persönliche Einstellungen gewöhnen, die Sie möglicherweise nicht auf einen anderen Computer übertragen können, an dem Sie arbeiten müssen. Wenn Sie es ausschalten müssen, um es an etwas anderes weiterzuleiten, verwenden Sie den Schalter in dieser Leitung. Aber Farben sollten nicht in einer Pfeife sein.
Überprüfen Sie ls
, ob Ihre die LS_COLORS
Umgebungsvariable unterstützt . Das trapd00r / LS_COLORS zeigt Ihnen, wie das funktioniert. Mit dircolors können Sie die Farben minutiös und nach Dateityp anpassen. Wenn Sie nicht festlegen, LS_COLORS
sondern die Farbgebung aktiviert haben, ls
werden eine Reihe von Systemaufrufen ausgeführt, um die Dateitypen und -attribute zu ermitteln, damit ermittelt werden kann, welche Farben verwendet werden sollen. Die Leute hinter Sherlock haben festgestellt, dass die Einstellung LS_COLORS
all dies vermeiden und die Geschwindigkeit um das 40-fache verbessern kann . Lesen Sie ihre blutigen Details, um zu sehen, was sie gefunden haben.
Ich lasse alle Dateitypen die Standardfarben verwenden:
$ 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:'
Hier ist die LS_COLORS-Datei, die ich Dircolors hinzugefügt habe:
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
Für grep
, ob Ihr Träger GREP_COLORS
oder GREP_OPTIONS
.
ls
undgrep
beim Piping müssen Sie nichts tun, da das Coloring--color=auto
bereits deaktiviert ist, wenn es sich bei der Ausgabe um eine Pipe handelt, oder eigentlich um alles andere als eine Tty. das ist, was "auto" bedeutet. Ebenso ist FreeBSDls -G
oder 'CLICOLOR' 'deaktiviert, wenn die Ausgabe nicht an ein Terminal gerichtet ist, es sei denn ... CLICOLOR_FORCE ...'.