LS(1)

NAME
ls - list contents of directory

SYNOPSIS
ls [ -acdfgilqrstu1ACLFR ] filename ...

DESCRIPTION
ls lists the contents of the directory when filename is a directory, and lists the name of the file when filename is a file. Output is sorted alphabetically by default. When no argument is given, the current directory is listed. When several arguments are given, the arguments are sorted appropriately, and file arguments are processed before directories and their contents.

OPTIONS

-a  List all entries; in the absence of this option, entries whose names begin with a period (.) are not listed (except for the superuser, for whom ls normally prints even files that begin with . ).

-c  Use time of creation, last edit, or last mode change for sorting (with the -t option) or printing (with the -l option), instead of alphabetical order.

-d  If argument is a directory, list only its name; often used with -l to get the status of a directory.

-f  Force each argument to be interpreted as a directory and list the name found in each slot. This option turns off the -l, -r, -s, and -t options, and turns on the -a option; the order is the order in which entries appear in the directory.

-g  Show the group ownership of the file in a long output.

-i  For each file, print the i-number in the first column of the report.

-l  List in long format, giving mode, number of links, owner, size in bytes, and time of last modification for each file. If the file is a special file, the size field will contain the major and minor device numbers. If the file is a symbolic link (or conditional symbolic link), the pathname of the linked-to file is preceded by -> . (For conditional symbolic links, each pathname is listed separately, preceded by the corresponding universe identifier.)

-q  Display nongraphic characters in filenames as the character ? ; this is the default when output is to a terminal.

-r  Reverse the order of sort to get reverse alphabetic or oldest first as appropriate.

-s  Give size in kilobytes of each file.

-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 option) and/or printing (with the -l option).

-1  Force one entry per line output format; this is the default when output is not to a terminal.

-A  Similar to -a, but does not list entries for current directory ( . ) and parent directory ( .. ) .

-C  Force multicolumn output; this is the default when output is to a terminal.

-F  Cause directories to be marked with a trailing / , sockets with a trailing = , symbolic links (including conditional symbolic links) with a trailing @ (except for symbolic links to directories, which are marked with a `/'), and executable files with a trailing * .

-L  If argument is a symbolic link (or a conditional symbolic link), list the file or directory the link references rather than the link itself.

-R  Recursively list subdirectories encountered.

The mode printed under the -l option contains 11 characters, which are interpreted as follows: the first character is as follows:

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, or conditional symbolic link

p   if the entry is a pipe

s   if the entry is a socket

-   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 permission to read, write, or execute the file as a program. For a directory, execute permission means 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. These are given as S (capitalized) if the corresponding execute permission is not 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. This is given as T (capitalized) if the corresponding execute permission is not set.

When the size of the files in a directory is listed, a total count of blocks, including indirect blocks, is printed.

FILES
/etc/passwd to get user id's for `ls -l'.
/etc/group to get group id's for `ls -g'.

BUGS
Newline and tab are considered printing characters in file names.

The option setting based on whether the output is a teletype is undesirable, because ls -s is different than ls -s | lpr. On the other hand, not doing this setting would make old shell scripts ls almost certain losers.