The program ls(1) uses the environment variable LS_COLORS to
determine the colors in which the filenames are to be displayed.
This environment variable is usually set by a command like
eval `dircolors some_path/dir_colors`
found in a system default shell initialization file, like
/etc/profile or /etc/csh.cshrc. (See also dircolors(1).)
Usually, the file used here is /etc/DIR_COLORS and can be
overridden by a .dir_colors file in one's home directory.
This configuration file consists of several statements, one per
line. Anything right of a hash mark (#) is treated as a comment,
if the hash mark is at the beginning of a line or is preceded by
at least one whitespace. Blank lines are ignored.
The global section of the file consists of any statement before
the first TERM statement. Any statement in the global section of
the file is considered valid for all terminal types. Following
the global section is one or more terminal-specific sections,
preceded by one or more TERM statements which specify the
terminal types (as given by the TERM environment variable) the
following declarations apply to. It is always possible to
override a global declaration by a subsequent terminal-specific
one.
The following statements are recognized; case is insignificant:
TERM terminal-type
Starts a terminal-specific section and specifies which
terminal it applies to. Multiple TERM statements can be
used to create a section which applies for several
terminal types.
COLOR yes|all|no|none|tty
(Slackware only; ignored by GNU dircolors(1).) Specifies
that colorization should always be enabled (yes or all),
never enabled (no or none), or enabled only if the output
is a terminal (tty). The default is no.
EIGHTBIT yes|no
(Slackware only; ignored by GNU dircolors(1).) Specifies
that eight-bit ISO/IEC 8859 characters should be enabled
by default. For compatibility reasons, this can also be
specified as 1 for yes or 0 for no. The default is no.
OPTIONS options
(Slackware only; ignored by GNU dircolors(1).) Adds
command-line options to the default ls command line. The
options can be any valid ls command-line options, and
should include the leading minus sign. Note that
dircolors does not verify the validity of these options.
NORMAL color-sequence
Specifies the color used for normal (nonfilename) text.
Synonym: NORM.
FILE color-sequence
Specifies the color used for a regular file.
DIR color-sequence
Specifies the color used for directories.
LINK color-sequence
Specifies the color used for a symbolic link.
Synonyms: LNK, SYMLINK.
ORPHAN color-sequence
Specifies the color used for an orphaned symbolic link
(one which points to a nonexistent file). If this is
unspecified, ls will use the LINK color instead.
MISSING color-sequence
Specifies the color used for a missing file (a nonexistent
file which nevertheless has a symbolic link pointing to
it). If this is unspecified, ls will use the FILE color
instead.
FIFO color-sequence
Specifies the color used for a FIFO (named pipe).
Synonym: PIPE.
SOCK color-sequence
Specifies the color used for a socket.
DOOR color-sequence
(Supported since fileutils 4.1) Specifies the color used
for a door (Solaris 2.5 and later).
BLK color-sequence
Specifies the color used for a block device special file.
Synonym: BLOCK.
CHR color-sequence
Specifies the color used for a character device special
file.
Synonym: CHAR.
EXEC color-sequence
Specifies the color used for a file with the executable
attribute set.
SUID color-sequence
Specifies the color used for a file with the set-user-ID
attribute set.
Synonym: SETUID.
SGID color-sequence
Specifies the color used for a file with the set-group-ID
attribute set.
Synonym: SETGID.
STICKY color-sequence
Specifies the color used for a directory with the sticky
attribute set.
STICKY_OTHER_WRITABLE color-sequence
Specifies the color used for an other-writable directory
with the executable attribute set.
Synonym: OWT.
OTHER_WRITABLE color-sequence
Specifies the color used for an other-writable directory
without the executable attribute set.
Synonym: OWR.
LEFTCODE color-sequence
Specifies the left code for non-ISO/IEC 6429 terminals
(see below).
Synonym: LEFT.
RIGHTCODE color-sequence
Specifies the right code for non-ISO/IEC 6429 terminals
(see below).
Synonym: RIGHT.
ENDCODE color-sequence
Specifies the end code for non-ISO/IEC 6429 terminals (see
below).
Synonym: END.
*extension color-sequence
Specifies the color used for any file that ends in
extension.
.extension color-sequence
Same as *.extension. Specifies the color used for any
file that ends in .extension. Note that the period is
included in the extension, which makes it impossible to
specify an extension not starting with a period, such as ~
for emacs backup files. This form should be considered
obsolete.
ISO/IEC 6429 (ANSI) color sequences
Most color-capable ASCII terminals today use ISO/IEC 6429 (ANSI)
color sequences, and many common terminals without color
capability, including xterm and the widely used and cloned DEC
VT100, will recognize ISO/IEC 6429 color codes and harmlessly
eliminate them from the output or emulate them. ls uses
ISO/IEC 6429 codes by default, assuming colorization is enabled.
ISO/IEC 6429 color sequences are composed of sequences of numbers
separated by semicolons. The most common codes are:
0 to restore default color
1 for brighter colors
4 for underlined text
5 for flashing text
30 for black foreground
31 for red foreground
32 for green foreground
33 for yellow (or brown) foreground
34 for blue foreground
35 for purple foreground
36 for cyan foreground
37 for white (or gray) foreground
40 for black background
41 for red background
42 for green background
43 for yellow (or brown) background
44 for blue background
45 for purple background
46 for cyan background
47 for white (or gray) background
Not all commands will work on all systems or display devices.
ls uses the following defaults:
NORMAL 0 Normal (nonfilename) text
FILE 0 Regular file
DIR 32 Directory
LINK 36 Symbolic link
ORPHAN undefined Orphaned symbolic link
MISSING undefined Missing file
FIFO 31 Named pipe (FIFO)
SOCK 33 Socket
BLK 44;37 Block device
CHR 44;37 Character device
EXEC 35 Executable file
A few terminal programs do not recognize the default properly.
If all text gets colorized after you do a directory listing,
change the NORMAL and FILE codes to the numerical codes for your
normal foreground and background colors.
Other terminal types (advanced configuration)
If you have a color-capable (or otherwise highlighting) terminal
(or printer!) which uses a different set of codes, you can still
generate a suitable setup. To do so, you will have to use the
LEFTCODE, RIGHTCODE, and ENDCODE definitions.
When writing out a filename, ls generates the following output
sequence: LEFTCODE typecodeRIGHTCODE filenameENDCODE, where the
typecode is the color sequence that depends on the type or name
of file. If the ENDCODE is undefined, the sequence LEFTCODENORMAL RIGHTCODE will be used instead. The purpose of the left-
and rightcodes is merely to reduce the amount of typing necessary
(and to hide ugly escape codes away from the user). If they are
not appropriate for your terminal, you can eliminate them by
specifying the respective keyword on a line by itself.
NOTE: If the ENDCODE is defined in the global section of the
setup file, it cannot be undefined in a terminal-specific section
of the file. This means any NORMAL definition will have no
effect. A different ENDCODE can, however, be specified, which
would have the same effect.
Escape sequences
To specify control- or blank characters in the color sequences or
filename extensions, either C-style \-escaped notation or
stty-style ^-notation can be used. The C-style notation includes
the following characters:
\a Bell (ASCII 7)
\b Backspace (ASCII 8)
\e Escape (ASCII 27)
\f Form feed (ASCII 12)
\n Newline (ASCII 10)
\r Carriage Return (ASCII 13)
\t Tab (ASCII 9)
\v Vertical Tab (ASCII 11)
\? Delete (ASCII 127)
\nnn Any character (octal notation)
\xnnn Any character (hexadecimal notation)
\_ Space
\\ Backslash (\)
\^ Caret (^)
\# Hash mark (#)
Note that escapes are necessary to enter a space, backslash,
caret, or any control character anywhere in the string, as well
as a hash mark as the first character.
/etc/DIR_COLORS
System-wide configuration file.
~/.dir_colors
Per-user configuration file.
This page describes the dir_colors file format as used in the
fileutils-4.1 package; other versions may differ slightly.
The default LEFTCODE and RIGHTCODE definitions, which are used by
ISO/IEC 6429 terminals are:
LEFTCODE \e[
RIGHTCODE m
The default ENDCODE is undefined.
This page is part of the man-pages (Linux kernel and C library
user-space interface documentation) project. Information about
the project can be found at
⟨https://www.kernel.org/doc/man-pages/⟩. If you have a bug report
for this manual page, see
⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.
This page was obtained from the tarball man-pages-6.9.1.tar.gz
fetched from
⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on
2024-06-26. If you discover any rendering problems in this HTML
version of the page, or you believe there is a better or more up-
to-date source for the page, or you have corrections or
improvements to the information in this COLOPHON (which is not
part of the original manual page), send a mail to
man-pages@man7.org
Linux man-pages 6.9.1 2024-06-16 dir_colors(5)