Ich unterrichte einen UNIX / Linux-Einführungskurs an einem örtlichen College und einer meiner Schüler stellte die folgende Frage:
Warum sind einige Dateien in meinem Verzeichnis weiß und andere grau? Sind die weißen Dateien, die ich heute erstellt habe, und die grauen Dateien bereits vorhanden?
Als ich dies untersuchte, dachte ich zuerst, dass die Antwort in der LS_COLORS
Variablen liegen würde, aber weitere Untersuchungen ergaben, dass die Farblisten bei Verwendung des -l
Schalters anders waren als bei Verwendung des -al
Schalters mit dem ls
Befehl. Siehe die folgenden Screenshots:
Wenn Sie ls -l
die Datei mit dem Namen '3' verwenden, wird diese als weiß -al
angezeigt. Wenn Sie jedoch den Schalter verwenden, wird dieselbe Datei grau angezeigt.
Ist dies ein Fehler in ls oder weiß jemand, warum dies geschieht?
quelle
ls
Befehl selbst zu tun .LS_COLORS='rs=0;1' ls -l
, was Sie am ehesten erreichen , wenn Sie mit LS_COLORS herumspielen, ist , aber es sieht ganz anders aus.ls
kann sich die Farbe seiner Ausgabe ändern.ls
können . ;-)Antworten:
Es sieht so aus, als ob Ihre Eingabeaufforderung (
$PS1
) das Fett-Attribut für Zeichen setzt, um die Farben schöner zu machen und nicht zu deaktivieren . Die Ausgabe vonls
weiß nichts davon und ist nicht fett gesetzt. Also nach der ersten Farbausgabe vonls
sieht alles dunkler aus.quelle
Die gesamte Ausgabe von ls wird in der zuletzt aktiven Farbe gedruckt . Wenn
ls
ohne Farbe aufgerufen wird:druckt die Liste der Dateien in rot .
Wenn für ls keine Farbänderung erforderlich ist, bleibt die letzte Farbe erhalten:
Trotzdem alles in Rot.
Sobald jedoch
ls
eine Farbe festgelegt werden muss (und die Farben dann auf die von der Konsole verwendete Standardfarbe zurückgesetzt werden müssen), ist die von da an verwendete Farbe die Standardfarbe der Konsole.Mit den ersten drei Zeilen (bis zum blauen Punkt) in rot gedruckt.
quelle