Farbausgabe von ls entsprechend der Dateierweiterung

7

Ich arbeite an einigen C ++ - Dateien, die sich alle in einem einzigen Ordner befinden.

Dabei werden lssowohl die CPP- als auch die H-Datei in derselben Farbe angezeigt.

Gibt es eine Möglichkeit, der Bash-Shell mitzuteilen, dass ich .cppDateien in Pink und .hDateien in Goldbraun anzeigen möchte ?

lächelnder Buddha
quelle

Antworten:

9

Wenn Sie mit GNU coreutils arbeiten (sehr wahrscheinlich, wenn Sie unter Linux arbeiten), suchen Sie nach dem dir_colorsDienstprogramm.

Wenn Ihre Distribution bereits alles so eingerichtet hat, dass Sie lsfür einige Dateitypen unterschiedliche Farben erhalten , müssen Sie zum Beispiel nur /etc/DIR_COLORSin Ihre kopieren ~/.dir_colors, die gewünschten Änderungen vornehmen und dann eine neue Shell starten, um die Auswirkungen zu sehen.

Wenn nicht, kopieren Sie die Datei dennoch wie oben beschrieben in Ihr Ausgangsverzeichnis. Dann müssen Sie:

  • stelle dies irgendwo in die rcDateien deiner Shell :

    eval `dircolors ~/.dir_colors`
  • alias lsto ls --color=auto(fügen Sie das auch in Ihre rcDateien ein)

Sie können dies auch unter Mac OS X über coreutils MacPort erhalten. Ein besseres ls für Mac OS X enthält einige Details dazu (achten Sie auf die with_default_namesOption und stellen Sie sicher, dass Sie die Auswirkungen der Verwendung verstehen, wenn / bevor Sie dies tun).

Für FreeBSD (weiß nicht, ob dies auf andere BSD-Varianten zutrifft) lswäre die Option für -G, und lesen Sie die Beschreibung der Manpage ls (1) für die Umgebungsvariable CLICOLORS , um weitere Informationen zu erhalten.

Matte
quelle
Funktioniert lsleider nur mit GNU .
Daniel Beck
Beeindruckend! Danke Mat das hat funktioniert! Nur ein kleiner Punkt für diejenigen, die sich für den Beitrag interessieren: Es sieht so aus, als ob die vom dircolorsPaket definierte Variable LS_COLORS diejenige ist, die zu diesem Zweck geändert werden sollte. Mit dircolors --print-database > ~/.dircolors, können wir die .dircolors Datei ändern und legen Sie eine eval dircolors ~ / .dir_colors`` in unserem Bashrc, zshrc
smilingbuddha
Vielen Dank, dass Sie OS X und FreeBSD, meine beiden anderen Lieblingsplattformen, behandelt haben.
Neirbowj