ls - list contents of directory
ls [ -acdfgiloqrstu1ACLFR ] name ...
For each directory argument, ls lists the contents of the directory; for each file argu-
ment, ls repeats its name and any other information requested. By default, the output is
sorted alphabetically. When no argument is given, the current directory is listed. When
several arguments are given, the arguments are first sorted appropriately, but file argu-
ments are processed before directories and their contents.
There are a large number of options:
-l List in long format, giving mode, number of links, owner, size in bytes, and time
of last modification for each file. (See below.) If the file is a special file
the size field will instead contain the major and minor device numbers. If the
file is a symbolic link the pathname of the linked-to file is printed preceded by
-o Include the file flags in a long (-l) output.
-g Include the group ownership of the file in a long output.
-t Sort by time modified (latest first) instead of by name.
-a List all entries; in the absence of this option, entries whose names begin with a
period (.) are not listed.
-s Give size in kilobytes of each file.
-d If argument is a directory, list only its name; often used with -l to get the sta-
tus of a directory.
-L If argument is a symbolic link, list the file or directory the link references
rather than the link itself.
-r Reverse the order of sort to get reverse alphabetic or oldest first as appropriate.
-u Use time of last access instead of last modification for sorting (with the -t
option) and/or printing (with the -l option).
-c Use time of file creation for sorting or printing.
-i For each file, print the i-number in the first column of the report.
-f Output is not sorted.
-F cause directories to be marked with a trailing `/', sockets with a trailing `=',
symbolic links with a trailing `@', and executable files with a trailing `*'.
-R recursively list subdirectories encountered.
-1 force one entry per line output format; this is the default when output is not to a
-C force multi-column output; this is the default when output is to a terminal.
-q force printing of non-graphic characters in file names as the character `?'; this
is the default when output is to a terminal.
The mode printed under the -l option contains 11 characters which are interpreted as fol-
lows: the first character is
d if the entry is a directory;
b if the entry is a block-type special file;
c if the entry is a character-type special file;
l if the entry is a symbolic link;
s if the entry is a socket, or
- if the entry is a plain file.
The next 9 characters are interpreted as three sets of three bits each. The first set
refers to owner permissions; the next refers to permissions to others in the same user-
group; and the last to all others. Within each set the three characters indicate permis-
sion respectively to read, to write, or to execute the file as a program. For a direc-
tory, `execute' permission is interpreted to mean permission to search the directory. 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 the set-group-id bit
set; likewise the user-execute permission character is given as s if the file has the set-
user-id bit set.
The last character of the mode (normally `x' or `-') is t if the 1000 bit of the mode is
on. See chmod(1) for the meaning of this mode.
When the sizes of the files in a directory are listed, a total count of blocks, including
indirect blocks is printed.
/etc/passwd to get user id's for `ls -l'.
/etc/group to get group id's for `ls -g'.
Newline and tab are considered printing characters in file names.
The output device is assumed to be 80 columns wide.
The option setting based on whether the output is a teletype is undesirable as ``ls -s''
is much different than ``ls -s | lpr''. On the other hand, not doing this setting would
make old shell scripts which used ls almost certain losers.
3rd Berkeley Distribution December 20, 1994 LS(1)