10.1.5 General output formatting
These options affect the appearance of the overall output.
- List one file per line. This is the default for ls when standard
output is not a terminal.
- List files in columns, sorted vertically. This is the default for
ls if standard output is a terminal. It is always the default
for the dir program.
GNU ls uses variable width columns to display as many files as
possible in the fewest lines.
- ‘--color [=when]’
- Specify whether to use color for distinguishing file types. when
may be omitted, or one of:
Specifying --color and no when is equivalent to
Piping a colorized listing through a pager like more or
less usually produces unreadable results. However, using
- Do not use color at all. This is the default.
- Only use color if standard output is a terminal.
- Always use color.
more -f does seem to work.
Note that using the --color option may incur a noticeable
performance penalty when run in a directory with very many entries,
because the default settings require that ls
single file it lists.
However, if you would like most of the file-type coloring
but can live without the other coloring options (e.g.,
executable, orphan, sticky, other-writable, capability), use
dircolors to set the LS_COLORS environment variable like this,
eval $(dircolors -p | perl -pe \
's/^((CAP|S[ET]|O[TR]|M|E)\w+).*/$1 00/' | dircolors -)
and on a
dirent.d_type-capable file system, ls
will perform only one
stat call per command line argument.
- Append a character to each file name indicating the file type. Also,
for regular files that are executable, append ‘*’. The file type
indicators are ‘/’ for directories, ‘@’ for symbolic links,
‘|’ for FIFOs, ‘=’ for sockets, ‘>’ for doors,
and nothing for regular files.
Do not follow symbolic links listed on the
command line unless the --dereference-command-line (-H),
--dereference (-L), or
--dereference-command-line-symlink-to-dir options are specified.
- Append a character to each file name indicating the file type. This is
like -F, except that executables are not marked.
- Append a character indicator with style word to entry names,
- Do not append any character indicator; this is the default.
- Append ‘/’ for directories. This is the same as the -p
- Append ‘/’ for directories, ‘@’ for symbolic links, ‘|’
for FIFOs, ‘=’ for sockets, and nothing for regular files. This is
the same as the --file-type option.
- Append ‘*’ for executable regular files, otherwise behave as for
‘file-type’. This is the same as the -F or
- Set the default block size to its normal value of 1024 bytes,
overriding any contrary specification in environment variables
(see Block size). This option is in turn overridden by the
--block-size, -h or --human-readable, and
The -k or --kibibytes option affects the
per-directory block count written by the -l and similar
options, and the size written by the -s or --size
option. It does not affect the file size written by -l.
- List files horizontally, with as many as will fit on each line,
separated by ‘, ’ (a comma and a space).
- Append a ‘/’ to directory names.
- List the files in columns, sorted horizontally.
- ‘-T cols’
- Assume that each tab stop is cols columns wide. The default is 8.
ls uses tabs where possible in the output, for efficiency. If
cols is zero, do not use tabs at all.
Some terminal emulators might not properly align columns to the right of a
TAB following a non-ASCII byte. You can avoid that issue by using the
-T0 option or put
TABSIZE=0 in your environment, to tell
ls to align using spaces, not tabs.
- Assume the screen is cols columns wide. The default is taken
from the terminal settings if possible; otherwise the environment
variable COLUMNS is used if it is set; otherwise the default