The ls utility shall conform to the Base Definitions volume of
POSIX.1‐2017, Section 12.2, Utility Syntax Guidelines.
The following options shall be supported:
-A
Write out all directory entries, including those whose
names begin with a <period> ('.'
) but excluding the
entries dot and dot-dot (if they exist).
-C
Write multi-text-column output with entries sorted down
the columns, according to the collating sequence. The
number of text columns and the column separator
characters are unspecified, but should be adapted to
the nature of the output device. This option disables
long format output.
-F
Do not follow symbolic links named as operands unless
the -H
or -L
options are specified. Write a <slash>
('/'
) immediately after each pathname that is a
directory, an <asterisk> ('*'
) after each that is
executable, a <vertical-line> ('|'
) after each that is
a FIFO, and an at-sign ('@'
) after each that is a
symbolic link. For other file types, other symbols may
be written.
-H
Evaluate the file information and file type for
symbolic links specified on the command line to be
those of the file referenced by the link, and not the
link itself; however, ls shall write the name of the
link itself and not the file referenced by the link.
-L
Evaluate the file information and file type for all
symbolic links (whether named on the command line or
encountered in a file hierarchy) to be those of the
file referenced by the link, and not the link itself;
however, ls shall write the name of the link itself and
not the file referenced by the link. When -L
is used
with -l
, write the contents of symbolic links in the
long format (see the STDOUT section).
-R
Recursively list subdirectories encountered. When a
symbolic link to a directory is encountered, the
directory shall not be recursively listed unless the -L
option is specified. The use of -R
with -d
or -f
produces unspecified results.
-S
Sort with the primary key being file size (in
decreasing order) and the secondary key being filename
in the collating sequence (in increasing order).
-a
Write out all directory entries, including those whose
names begin with a <period> ('.'
).
-c
Use time of last modification of the file status
information (see the Base Definitions volume of
POSIX.1‐2017, sys_stat.h(0p)) instead of last
modification of the file itself for sorting (-t
) or
writing (-l
).
-d
Do not follow symbolic links named as operands unless
the -H
or -L
options are specified. Do not treat
directories differently than other types of files. The
use of -d
with -R
or -f
produces unspecified results.
-f
List the entries in directory operands in the order
they appear in the directory. The behavior for non-
directory operands is unspecified. This option shall
turn on -a
. When -f
is specified, any occurrences of
the -r
, -S
, and -t
options shall be ignored and any
occurrences of the -A
, -g
, -l
, -n
, -o
, and -s
options
may be ignored. The use of -f
with -R
or -d
produces
unspecified results.
-g
Turn on the -l
(ell) option, but disable writing the
file's owner name or number. Disable the -C
, -m
, and
-x
options.
-i
For each file, write the file's file serial number (see
stat() in the System Interfaces volume of
POSIX.1‐2017).
-k
Set the block size for the -s
option and the per-
directory block count written for the -l
, -n
, -s
, -g
,
and -o
options (see the STDOUT section) to 1024 bytes.
-l
(The letter ell.) Do not follow symbolic links named as
operands unless the -H
or -L
options are specified.
Write out in long format (see the STDOUT section).
Disable the -C
, -m
, and -x
options.
-m
Stream output format; list pathnames across the page,
separated by a <comma> character followed by a <space>
character. Use a <newline> character as the list
terminator and after the separator sequence when there
is not room on a line for the next list entry. This
option disables long format output.
-n
Turn on the -l
(ell) option, but when writing the
file's owner or group, write the file's numeric UID or
GID rather than the user or group name, respectively.
Disable the -C
, -m
, and -x
options.
-o
Turn on the -l
(ell) option, but disable writing the
file's group name or number. Disable the -C
, -m
, and
-x
options.
-p
Write a <slash> ('/'
) after each filename if that file
is a directory.
-q
Force each instance of non-printable filename
characters and <tab> characters to be written as the
<question-mark> ('?'
) character. Implementations may
provide this option by default if the output is to a
terminal device.
-r
Reverse the order of the sort to get reverse collating
sequence oldest first, or smallest file size first
depending on the other options given.
-s
Indicate the total number of file system blocks
consumed by each file displayed. If the -k
option is
also specified, the block size shall be 1024 bytes;
otherwise, the block size is implementation-defined.
-t
Sort with the primary key being time modified (most
recently modified first) and the secondary key being
filename in the collating sequence. For a symbolic
link, the time used as the sort key is that of the
symbolic link itself, unless ls is evaluating its file
information to be that of the file referenced by the
link (see the -H
and -L
options).
-u
Use time of last access (see the Base Definitions
volume of POSIX.1‐2017, sys_stat.h(0p)) instead of last
modification of the file for sorting (-t
) or writing
(-l
).
-x
The same as -C
, except that the multi-text-column
output is produced with entries sorted across, rather
than down, the columns. This option disables long
format output.
-1
(The numeric digit one.) Force output to be one entry
per line. This option does not disable long format
output. (Long format output is enabled by -g
, -l
(ell),
-n
, and -o
; and disabled by -C
, -m
, and -x
.)
If an option that enables long format output (-g
, -l
(ell), -n
,
and -o
is given with an option that disables long format output
(-C
, -m
, and -x
), this shall not be considered an error. The last
of these options specified shall determine whether long format
output is written.
If -R
, -d
, or -f
are specified, the results of specifying these
mutually-exclusive options are specified by the descriptions of
these options above. If more than one of any of the other options
shown in the SYNOPSIS section in mutually-exclusive sets are
given, this shall not be considered an error; the last option
specified in each set shall determine the output.
Note that if -t
is specified, -c
and -u
are not only mutually-
exclusive with each other, they are also mutually-exclusive with
-S
when determining sort order. But even if -S
is specified after
all occurrences of -c
, -t
, and -u
, the last use of -c
or -u
determines the timestamp printed when producing long format
output.