ls(1) ls(1)
NAME
ls - list contents of directory
SYNOPSIS
ls [-R] [-a] [-d] [-C] [-x] [-m] [-l] [-n] [-o] [-g] [-r]
[-t] [-u] [-c] [-p] [-F] [-b] [-q] [-i] [-s] [-f] [names]
DESCRIPTION
For each directory argument, ls lists the contents of the
directory; for each file argument, ls repeats its name and
any other information requested. The output is sorted
alphabetically by default. When no argument is given, the
current directory is listed. When several arguments are
given, the arguments are first sorted appropriately, but
file arguments appear before directories and their contents.
There are three major listing formats. The default format
is to list one entry per line, the -C and -x flag options
enable multi-column formats, and the -m flag option enables
stream output format, in which files are listed across the
page, separated by commas. In order to determine output
formats for the -C, -x, and -m flag options, ls uses an
environment variable, COLUMNS, to determine the number of
character positions available on one output line. If this
variable is not set, the terminfo database is used to
determine the number of columns, based on the environment
variable TERM. If this information cannot be obtained, 80
columns are assumed.
There are an unbelievable number of flag options:
-R Recursively list subdirectories encountered.
-a List all entries; usually entries whose names begin
with a period (.) are not listed.
-d If an argument is a directory, list only its name (not
its contents); often used with -l to get the status of
a directory.
-L If argument is a symbolic link, list the file or
directory the link references rather than the link
itself.
-C Multi-column output with entries sorted down the
columns.
-x Multi-column output with entries sorted across, rather
than down the page.
-m Stream output format.
Page 1 (last mod. 1/16/87)
ls(1) ls(1)
-l List in long format, giving mode, number of links,
owner, group, size in bytes, and time of last
modification for each file (see below). If the file is
a special file, the size field will contain the major
and minor device numbers, instead of a size. If the
file is a symbolic link, the pathname of the linked-to
file is printed preceded by ->.
-n The same as -l, except that the owner's UID and group's
GID numbers are printed, rather than the associated
character strings.
-o The same as -l, except that the group is not printed.
-g The same as -l, except that the owner is not printed.
-r Reverse the order of sort to get reverse alphabetic or
oldest first, as appropriate.
-t Sort by time modified (latest first), instead of by
name.
-u Use time of last access, instead of last modification,
for sorting (with the -t flag option) or printing (with
the -l flag option).
-c Use time of last modification of the i-node (file
created, mode changed, etc.) for sorting (-t) or
printing (-l).
-p Put a slash (/) after each filename if that file is a
directory.
-F Put a slash (/) after each filename if that file is a
directory, an asterisk (*) after each filename if that
file is executable, and an (@) after each filename if
that file is a symbolic link.
-b Force printing of non-graphic characters to be in the
octal \ddd notation.
-q Force printing of non-graphic characters in filenames
as the character (?).
-i For each file, print the i-number in the first column
of the report.
-s Give size in blocks, including indirect blocks, for
each entry.
-f Force each argument to be interpreted as a directory
and list the name found in each slot. This flag option
Page 2 (last mod. 1/16/87)
ls(1) ls(1)
turns off -l, -t, -s, and -r, and turns on -a; the
order is the order in which entries appear in the
directory.
The mode printed under the -l flag option consists of 10
characters that are interpreted as follows:
The first character is:
d if the entry is a directory;
b if the entry is a block special file;
c if the entry is a character special file;
l if the entry is a symbolic link;
p if the entry is a fifo (named pipe) special file;
- if the entry is an ordinary file.
The next 9 characters are interpreted as three sets of
three bits each. The first set refers to the owner's
permissions; the next to permissions of others in the
user-group of the file; and the last to all others.
Within each set, the three characters indicate permission
to read, to write, and to execute the file as a program,
respectively. For a directory, ``execute'' permission is
interpreted to mean permission to search the directory
for a specified file.
The permissions are indicated as follows:
r if the file is readable;
w if the file is writable;
x if the file is executable;
- if the indicated permission is not granted.
The group-execute permission character is given as s if
the file has set-group-ID mode; likewise, the user-
execute permission character is given as s if the file
has set-user-ID mode. The last character of the mode
(normally x or -) is t if the 1000 (octal) bit of the
mode is on; see chmod(1) for the meaning of this mode.
The indications of set-ID and 1000 bits of the mode are
capitalized (S and T, respectively) if the corresponding
execute permission is not set.
When the sizes of the files in a directory are listed, a
total count of blocks, including indirect blocks, is
printed.
EXAMPLE
ls -l /etc
will list all entries in /etc in long format, as, for
example:
Page 3 (last mod. 1/16/87)
ls(1) ls(1)
-rw-r--r- 1 root bin 115 Mar 17 1986 mtab
where the fields represent the file's permissions, number of
links, owner, group, size in bytes, date of last
modification, and name, respectively.
FILES
/bin/ls
/etc/passwd to get user IDs for ls -l and ls -o.
/etc/group to get group IDs for ls -l and ls -g.
/usr/lib/terminfo/* to get terminal information.
SEE ALSO
chmod(1), find(1).
BUGS
Unprintable characters in filenames may confuse the columnar
output options.
Page 4 (last mod. 1/16/87)