BSD 4_3_Net_2 release
[unix-history] / usr / src / bin / ls / ls.1
index 0ed1977..32d1414 100644 (file)
-.\" Copyright (c) 1990, 1980 Regents of the University of California.
-.\" All rights reserved.  The Berkeley software License Agreement
-.\" specifies the terms and conditions for redistribution.
+.\" Copyright 1980, 1990, 1991 The Regents of the University of California.
+.\" All rights reserved.
 .\"
 .\"
-.\"            @(#)ls.1        6.13 (Berkeley) 6/24/90
+.\" This code is derived from software contributed to Berkeley by
+.\" the Institute of Electrical and Electronics Engineers, Inc.
 .\"
 .\"
-.TH LS 1 "%Q"
-.UC
-.SH NAME
-ls \- list contents of directory
-.SH SYNOPSIS
-.B ls
-[
-.B \-1AaCcdFfgikLlqRrstu
-] [ file ... ]
-.br
-.SH DESCRIPTION
-For each directory argument,
-.I ls
-lists the contents of the directory;
-for each file argument,
-.I 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 arguments are processed
-before directories and their contents.
-.PP
-The options are as follows:
-.TP
-.B \-1
-force one entry per line output format; this is the default when
-output is not to a terminal.
-.TP
-.B \-A
-List all entries except for ``.'' and ``..''.
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\"    must display the following acknowledgement:
+.\"    This product includes software developed by the University of
+.\"    California, Berkeley and its contributors.
+.\" 4. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     @(#)ls.1       6.18 (Berkeley) 6/27/91
+.\"
+.Dd June 27, 1991
+.Dt LS 1
+.Os
+.Sh NAME
+.Nm ls
+.Nd list directory contents.
+.Sh SYNOPSIS
+.Nm ls
+.Op Fl CFRacdilqrstu1
+.Op Ar file ...
+.Sh DESCRIPTION
+For each operand that names a
+.Ar file
+of a type other than
+directory,
+.Nm ls
+displays its name as well as any requested,
+associated information.
+For each operand that names a
+.Ar file
+of type directory,
+.Nm ls
+displays the names of files contained
+within that directory, as well as any requested, associated
+information.
+.Pp
+If no operands are given, the contents of the current
+directory are displayed.
+If more than one operand is given,
+non-directory operands are displayed first; directory
+and non-directory operands are sorted separately and in
+lexicographical order.
+.Pp
+The following options are available:
+.Bl -tag -width indent
+.It Fl A
+List all entries except for
+.Ql \&.
+and
+.Ql \&.. .
 Always set for the super-user.
 Always set for the super-user.
-.TP
-.B \-a
-List all entries; in the absence of this option, entries whose
-names begin with a period
-.RB ( . )
-are
-.I not
-listed.
-.TP
-.B \-C
-force multi-column output; this is the default when output is to a terminal.
-.TP
-.B \-c
+.It Fl C
+Force multi-column output; this is the default when output is to a terminal.
+.It Fl F
+Display a slash (/) immediately after each pathname
+that is a directory, an asterisk (*) after each that is
+executable,
+and an at sign (@) after each symbolic link.
+.\"and a vertical bar (|) after
+.\"each that is a
+.\".Tn FIFO . 
+.It Fl L
+If argument is a symbolic link, list the file or directory the link references
+rather than the link itself.
+.It Fl R
+Recursively list subdirectories encountered.
+.It Fl T
+Display complete time information for the file, including
+month, day, hour, minute, second, and year.
+.It Fl a
+Include directory entries whose names begin with a
+dot (.).
+.It Fl c
 Use time when file status was last changed for sorting or printing.
 Use time when file status was last changed for sorting or printing.
-.TP
-.B \-d
-If argument is a directory, list only its name;
-often used with \fB\-l\fR to get the status of a directory.
-.TP
-.B \-f
-Don't sort the output.
-.TP
-.B \-F
-cause directories to be marked with a trailing `/',
-sockets with a trailing `=',
-symbolic links with a trailing `@', and executable
-files with a trailing `*'.
-.TP
-.B \-g
-Include the group ownership of the file in a long output.
-.TP
-.B \-i
-For each file, print the i-number in the first column of the report.
-.TP
-.B -k
+.It Fl d
+Directories are listed as plain files (not searched recursively).
+.It Fl f
+Output is not sorted.
+.It Fl g
+Include the group ownership of the file in a long
+.Pq Fl l
+output
+.Pq Fl lg .
+If the group is not a known group name, the numeric ID
+is printed.
+.It Fl i
+For each file, print the file's file serial number (inode number).
+.It Fl k
 Modifies the
 Modifies the
-.I -s
+.Fl s
 option, causing the sizes to be reported in kilobytes.
 option, causing the sizes to be reported in kilobytes.
-.TP
-.B \-L
-If argument is a symbolic link, list the file or directory the link references
-rather than the link itself.
-.TP
-.B \-l
-List in long format, giving type and mode (in the format described by
-.IR strmode (3)),
-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 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 ``\->''.
-.TP
-.B \-q
-force printing of non-graphic characters in file names as
+.It Fl l
+(The lowercase letter ``ell.'')  List in long format. (See below.)
+If the output is to a terminal, a total sum for all the file
+sizes is output on a line before the long listing.
+.It Fl q
+Force printing of non-graphic characters in file names as
 the character `?'; this is the default when output is to a terminal.
 the character `?'; this is the default when output is to a terminal.
-.TP
-.B \-R
-recursively list subdirectories encountered.
-.TP
-.B \-r
-Reverse the order of sort to get reverse alphabetic
-or oldest first as appropriate.
-.TP
-.B \-s
-Display the sizes of files and directories in 512-byte blocks.
-.TP
-.B \-t
-Sort by time modified (latest first) instead of
-by name.
-.TP
-.B \-u
-Use time of last access instead of last
-modification for sorting
-(with the \fB\-t\fP option)
-and/or printing (with the \fB\-l\fP option).
-.PP
+.It Fl r
+Reverse the order of the sort to get reverse
+lexicographical order or the oldest entries first.
+.It Fl s
+Display the number of file system bytes actually
+used by each file, in units of 512, where partial
+units are rounded up to the next integer value.
+If the output is to a terminal, a total sum for all the file
+sizes is output on a line before the listing.
+.It Fl t
+Sort by time modified (most recently modified
+first) before sorting the operands by lexicographical
+order.
+.It Fl u
+Use time of last access,
+instead of last modification
+of the file for sorting
+.Pq Fl t
+or printing
+.Pq Fl l .
+.It Fl \&1
+(The numeric digit ``one.'')  Force output to be
+one entry per line.
+This is the default when
+output is not to a terminal.
+.El
+.Pp
 The
 The
-.IR -1 ,
-.IR -C ,
+.Fl 1 ,
+.Fl C ,
 and
 and
-.I -l
+.Fl l
 options all override each other; the last one specified determines
 the format used.
 options all override each other; the last one specified determines
 the format used.
-.PP
+.Pp
 The
 The
-.IR -c ,
+.Fl c ,
 and
 and
-.I -u
+.Fl u
 options override each other; the last one specified determines
 the file time used.
 options override each other; the last one specified determines
 the file time used.
-.PP
-When the sizes of the files in a directory
-are listed, a total count of blocks,
-including indirect blocks is printed.
-.SH FILES
-/etc/passwd to get user id's for
-`ls \-l'.
-.br
-/etc/group to get group id's for
-`ls \-g'.
-.SH BUGS
-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
-.I ls
-almost certain losers.
+.Pp
+By default,
+.Nm ls
+lists one entry per line to standard
+output; the exceptions are to terminals or when the
+.Fl C
+option is specified.
+.Pp
+File information is displayed with one or more
+<blank>s separating the information associated with the
+.Fl i ,
+.Fl s ,
+and
+.Fl l
+options.
+.Ss The Long Format
+If the
+.Fl l
+option is given, the following information
+is be displayed:
+file mode,
+number of links, owner name,
+.\" group name,
+number of bytes in the file, abbreviated
+month, day-of-month file was last modified,
+hour file last modified, minute file last
+modified, and the pathname.
+.Pp
+If the owner name is not a known user name
+the numeric ID is displayed.
+.Pp
+If the file is a character special or block special file,
+the major and minor device numbers for the file are displayed
+in the size field. If the file is a symbolic link the pathname of the
+linked-to file is preceded by
+.Dq \-> .
+.Pp
+The file mode printed under the -l option consists of the
+the entry type, owner permissions, and group permissions.
+The entry type character describes the type of file, as
+follows:
+.Pp
+.Bl -tag -width 4n -offset indent -compact
+.It Sy b
+Block special file.
+.It Sy c
+Character special file.
+.It Sy d
+Directory.
+.It Sy l
+Symbolic link.
+.It Sy s
+Socket link.
+.\" .It Sy p
+.\" .Tn FIFO .
+.It Sy \-
+Regular file.
+.El
+.Pp
+The next three fields
+are three characters each:
+owner permissions,
+group permissions, and
+other permissions.
+Each field has three character positions:
+.Bl -enum -offset indent
+.It
+If
+.Sy r ,
+the file is readable; if
+.Sy \- ,
+it is not readable.
+.It
+If
+.Sy w ,
+the file is writable; if
+.Sy \- ,
+it is not writable.
+.It
+The first of the following that applies:
+.Bl -tag -width 4n -offset indent
+.It Sy S
+If in the owner permissions, the file is not executable and
+set-user-ID mode is set.
+If in the group permissions, the file is not executable
+and set-group-ID mode is set.
+.It Sy s
+If in the owner permissions, the file is executable
+and set-user-ID mode is set.
+If in the group permissions, the file is executable
+and setgroup-ID mode is set.
+.It Sy x
+The file is executable or the directory is
+searchable.
+.It Sy \-
+The file is neither readable, writeable, exectutable,
+or set-user-ID or set-group-ID mode nor sticky. (See below.)
+.El
+.Pp
+These next two apply only to the third character in the last group
+(other permissions).
+.Bl -tag -width 4n -offset indent
+.It Sy T
+The sticky bit is set
+(mode
+.Li 1000 ) ,
+but not execute or search permission. (See
+.Xr chmod 1
+or
+.Xr sticky 8 . )
+.It Sy t
+The sticky bit is set (mode
+.Li 1000 ) ,
+and is searcheable or executable.
+(See
+.Xr chmod 1
+or
+.Xr sticky 8 . )
+.El
+.El
+.Pp
+The
+.Nm ls
+utility exits 0 on success, and >0 if an error occurs.
+.Sh ENVIRONMENT
+The following environment variables affect the execution of
+.Nm ls :
+.Bl -tag -width COLUMNS
+.It COLUMNS
+If this variable contains a string representing a
+decimal integer, it is used as the
+column position width for displaying
+multiple-text-column output.
+The
+.Nm ls
+utility calculates how
+many pathname text columns to display
+based on the width provided.
+(See
+.Fl C . )
+.El
+.Sh SEE ALSO
+.Xr chmod 1 ,
+.Xr sticky 8
+.Sh HISTORY
+A
+.Nm ls
+command appeared in
+.At v6 .
+.\" .Sh STANDARDS
+.\" .The
+.\" .Nm ls
+.\" function is expected to be
+.\" .Tn POSIX
+.\" 1003.2 compatible.