ls man page on YellowDog

Man page or keyword search:  
man Server   18644 pages
apropos Keyword Search (all sections)
Output format
YellowDog logo
[printable version]

LS(P)			   POSIX Programmer's Manual			 LS(P)

NAME
       ls - list directory contents

SYNOPSIS
       ls [-CFRacdilqrtu1][-H | -L ][-fgmnopsx][file...]

DESCRIPTION
       For  each  operand  that names a file of a type other than directory or
       symbolic link to a directory, ls shall write the name of	 the  file  as
       well  as	 any requested, associated information.	 For each operand that
       names a file of type directory, ls shall write the names of files  con‐
       tained within the directory as well as any requested, associated infor‐
       mation. If one of the -d, -F, or -l options are specified, and  one  of
       the  -H	or -L options are not specified, for each operand that names a
       file of type symbolic link to a directory, ls shall write the  name  of
       the  file  as well as any requested, associated information. If none of
       the -d, -F, or -l options are specified, or the -H or  -L  options  are
       specified,  for each operand that names a file of type symbolic link to
       a directory, ls shall write the names of	 files	contained  within  the
       directory as well as any requested, associated information.

       If  no  operands are specified, ls shall write the contents of the cur‐
       rent directory. If more than one operand is specified, ls  shall	 write
       non-directory operands first; it shall sort directory and non-directory
       operands separately according to the collating sequence in the  current
       locale.

       The  ls utility shall detect infinite loops; that is, entering a previ‐
       ously visited directory that is an ancestor of the  last	 file  encoun‐
       tered.  When  it	 detects an infinite loop, ls shall write a diagnostic
       message to standard error and shall either recover its position in  the
       hierarchy or terminate.

OPTIONS
       The  ls	utility	 shall	conform	 to  the  Base	Definitions  volume of
       IEEE Std 1003.1-2001, Section 12.2, Utility Syntax Guidelines.

       The following options shall be supported:

       -C     Write multi-text-column output with entries sorted down the col‐
	      umns,  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.

       -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 bar ( '|' ) after each
	      that is a FIFO, and an at sign ( '@' ) after each that is a sym‐
	      bolic link. For other file types, other symbols may be written.

       -H     If a symbolic link referencing a file of type directory is spec‐
	      ified  on	 the command line, ls shall evaluate the file informa‐
	      tion and file type 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.

       -a     Write out all directory entries,	including  those  whose	 names
	      begin  with  a  period  ( '.' ). Entries beginning with a period
	      shall not be written out unless explicitly  referenced,  the  -a
	      option is supplied, or an implementation-defined condition shall
	      cause them to be written.

       -c     Use time of last modification of	the  file  status  information
	      (see   <sys/stat.h>   in	 the   System	Interfaces  volume  of
	      IEEE Std 1003.1-2001) 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 produces
	      unspecified results.

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

       -g     The same as -l, except that the owner shall not be written.

       -i     For  each	 file, write the file's file serial number (see stat()
	      in the System Interfaces volume of IEEE Std 1003.1-2001).

       -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). When -l (ell) is specified,  -1
	      (one) shall be assumed.

       -m     Stream  output  format; list files across the page, separated by
	      commas.

       -n     The same as -l, except that the  owner's	UID  and  GID  numbers
	      shall be written, rather than the associated character strings.

       -o     The same as -l, except that the group shall not be written.

       -p     Write  a	slash  (  '/'  ) after each filename if that file is a
	      directory.

       -q     Force each instance of  non-printable  filename  characters  and
	      <tab>s  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
	      or oldest first.

       -s     Indicate the total number of file system blocks consumed by each
	      file displayed. 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 col‐
	      lating sequence.

       -u     Use time of last access (see <sys/stat.h>) instead of last modi‐
	      fication of the file for sorting ( -t) or writing ( -l).

       -x     The same as -C, except that the multi-text-column output is pro‐
	      duced with entries sorted across, rather than down, the columns.

       -1     (The numeric digit one.) Force output to be one entry per line.

       Specifying  more	 than  one  of	the options in the following mutually-
       exclusive pairs shall not be considered an error: -C and -l (ell),   -m
       and  -l (ell), -x and -l (ell),	-C and -1 (one), -H and -L, -c and -u.
       The last option specified in each pair shall determine the output  for‐
       mat.

OPERANDS
       The following operand shall be supported:

       file   A pathname of a file to be written. If the file specified is not
	      found, a diagnostic message shall be output on standard error.

STDIN
       Not used.

INPUT FILES
       None.

ENVIRONMENT VARIABLES
       The following environment variables shall affect the execution of ls:

       COLUMNS
	      Determine the user's preferred column position width for writing
	      multiple	text-column output. If this variable contains a string
	      representing a decimal integer, the ls utility  shall  calculate
	      how  many	 pathname  text columns to write (see -C) based on the
	      width provided. If COLUMNS is not set or invalid, an implementa‐
	      tion-defined  number of column positions shall be assumed, based
	      on the implementation's knowledge of the output device. The col‐
	      umn width chosen to write the names of files in any given direc‐
	      tory shall be constant. Filenames shall not be truncated to  fit
	      into the multiple text-column output.

       LANG   Provide  a  default value for the internationalization variables
	      that are unset or null. (See  the	 Base  Definitions  volume  of
	      IEEE Std 1003.1-2001,  Section  8.2,  Internationalization Vari‐
	      ables for the precedence of internationalization variables  used
	      to determine the values of locale categories.)

       LC_ALL If  set  to a non-empty string value, override the values of all
	      the other internationalization variables.

       LC_COLLATE

	      Determine the locale  for	 character  collation  information  in
	      determining the pathname collation sequence.

       LC_CTYPE
	      Determine	 the  locale  for  the	interpretation of sequences of
	      bytes of text data as characters (for  example,  single-byte  as
	      opposed to multi-byte characters in arguments) and which charac‐
	      ters are defined as printable (character class print).

       LC_MESSAGES
	      Determine the locale that should be used to  affect  the	format
	      and contents of diagnostic messages written to standard error.

       LC_TIME
	      Determine	 the  format  and  contents  for date and time strings
	      written by ls.

       NLSPATH
	      Determine the location of message catalogs for the processing of
	      LC_MESSAGES .

       TZ     Determine	 the timezone for date and time strings written by ls.
	      If TZ is unset or null, an unspecified default timezone shall be
	      used.

ASYNCHRONOUS EVENTS
       Default.

STDOUT
       The default format shall be to list one entry per line to standard out‐
       put; the exceptions are to terminals or when one of the -C,   -m, or -x
       options	is  specified.	If  the output is to a terminal, the format is
       implementation-defined.

       When -m is specified, the format used shall be:

	      "%s, %s, ...\n", <filename1>, <filename2>

       where the largest number of filenames shall be written without  exceed‐
       ing the length of the line.

       If  the	-i  option  is	specified,  the file's file serial number (see
       <sys/stat.h>) shall be written in the following format before any other
       output for the corresponding entry:

	      %u ", <file serial number>

       If  the	-l  option  is specified without -L, the following information
       shall be written:

	      "%s %u %s %s %u %s %s\n", <file mode>, <number of links>,
		  <owner name>, <group name>, <number of bytes in the file>,
		  <date and time>, <pathname>

       If the file is a symbolic link, this information	 shall	be  about  the
       link itself and the <pathname> field shall be of the form:

	      "%s -> %s", <pathname of link>, <contents of link>

       If  both	 -l  and  -L are specified, the following information shall be
       written:

	      "%s %u %s %s %u %s %s\n", <file mode>, <number of links>,
		  <owner name>, <group name>, <number of bytes in the file>,
		  <date and time>, <pathname of link>

       where all fields except <pathname  of  link>  shall  be	for  the  file
       resolved from the symbolic link.

       The  -g, -n, and -o options use the same format as -l, but with omitted
       items and their associated <blank>s. See the OPTIONS section.

       In both the preceding -l forms, if <owner name> or <group name>	cannot
       be determined,	 or if -n is given,  they shall be replaced with their
       associated numeric values using the format %u .

       The <date and time> field shall contain the appropriate date and	 time‐
       stamp  of  when	the  file  was last modified. In the POSIX locale, the
       field shall be the equivalent of the output of the following date  com‐
       mand:

	      date "+%b %e %H:%M"

       if the file has been modified in the last six months, or:

	      date "+%b %e %Y"

       (where  two  <space>s  are used between %e and %Y ) if the file has not
       been modified in the last six months or if the modification date is  in
       the future, except that, in both cases, the final <newline> produced by
       date shall not be included and the output shall be as if the date  com‐
       mand  were  executed  at	 the time of the last modification date of the
       file rather than the current time. When the LC_TIME locale category  is
       not  set to the POSIX locale, a different format and order of presenta‐
       tion of this field may be used.

       If the file is a character special or block special file, the  size  of
       the  file may be replaced with implementation-defined information asso‐
       ciated with the device in question.

       If the pathname was specified as a file operand, it shall be written as
       specified.

       The  file  mode	written	 under the -l,	 -g, -n, and -o	 options shall
       consist of the following format:

	      "%c%s%s%s%c", <entry type>, <owner permissions>,
		  <group permissions>, <other permissions>,
		  <optional alternate access method flag>

       The <optional alternate access method flag> shall be a  single  <space>
       if there is no alternate or additional access control method associated
       with the file; otherwise, a printable character shall be used.

       The <entry type> character shall describe the type of file, as follows:

       d      Directory.

       b      Block special file.

       c      Character special file.

       l (ell)
	      Symbolic link.

       p      FIFO.

       -      Regular file.

       Implementations may add other characters	 to  this  list	 to  represent
       other implementation-defined file types.

       The next three fields shall be three characters each:

       <owner permissions>

	      Permissions  for	the file owner class (see the Base Definitions
	      volume of IEEE Std 1003.1-2001, Section 4.4, File Access Permis‐
	      sions).

       <group permissions>

	      Permissions for the file group class.

       <other permissions>

	      Permissions for the file other class.

       Each field shall have three character positions:

	1. If 'r' , the file is readable; if '-' , the file is not readable.

	2. If 'w' , the file is writable; if '-' , the file is not writable.

	3. The first of the following that applies:

       S
	      If  in  <owner permissions>, the file is not executable and set-
	      user-ID mode is set. If in <group permissions>, the file is  not
	      executable and set-group-ID mode is set.

       s
	      If  in <owner permissions>, the file is executable and set-user-
	      ID mode is set. If in  <group permissions>,  the	file  is  exe‐
	      cutable and set-group-ID mode is set.

       T
	      If  in  <other permissions>  and the file is a directory, search
	      permission is not granted to others, and the restricted deletion
	      flag is set.

       t
	      If  in  <other permissions>  and the file is a directory, search
	      permission is granted to others,	and  the  restricted  deletion
	      flag is set.

       x
	      The file is executable or the directory is searchable.

       -
	      None  of	the  attributes	 of  'S'  ,  's'  , 'T' , 't' , or 'x'
	      applies.

       Implementations may add other characters to this	 list  for  the	 third
       character position. Such additions shall, however, be written in lower‐
       case if the file is executable or searchable, and in uppercase if it is
       not.

       If  any	of the -l,   -g, -n, -o, or -s options is specified, each list
       of files within the directory shall be preceded by a status line	 indi‐
       cating the number of file system blocks occupied by files in the direc‐
       tory in 512-byte units, rounded up  to  the  next  integral  number  of
       units, if necessary. In the POSIX locale, the format shall be:

	      "total %u\n", <number of units in the directory>

       If more than one directory, or a combination of non-directory files and
       directories are written, either as a result of specifying multiple  op‐
       erands,	or  the -R option, each list of files within a directory shall
       be preceded by:

	      "\n%s:\n", <directory name>

       If this string is the first thing to be written,	 the  first  <newline>
       shall  not be written. This output shall precede the number of units in
       the directory.

       If the -s option is given, each file shall be written with  the	number
       of  blocks  used	 by the file. Along with -C, -1, -m, or -x, the number
       and a <space> shall precede the filename; with -g, -l, -n, or -o,  they
       shall precede each line describing a file.

STDERR
       The standard error shall be used only for diagnostic messages.

OUTPUT FILES
       None.

EXTENDED DESCRIPTION
       None.

EXIT STATUS
       The following exit values shall be returned:

	0     Successful completion.

       >0     An error occurred.

CONSEQUENCES OF ERRORS
       Default.

       The following sections are informative.

APPLICATION USAGE
       Many implementations use the equal sign ( '=' ) to denote sockets bound
       to the file system for  the  -F	option.	  Similarly,  many  historical
       implementations	use  the  's' character to denote sockets as the entry
       type characters for the -l option.

       It is difficult for an application to use every part of the file	 modes
       field of ls -l in a portable manner.  Certain file types and executable
       bits are not guaranteed to be exactly as shown, as implementations  may
       have extensions.	 Applications can use this field to pass directly to a
       user printout or prompt, but actions based on its contents should  gen‐
       erally be deferred, instead, to the test utility.

       The output of ls (with the -l and related options) contains information
       that logically could be used by utilities such as chmod	and  touch  to
       restore	files to a known state. However, this information is presented
       in a format that cannot be used directly by those utilities or be  eas‐
       ily  translated	into  a	 format that can be used. A character has been
       added to the end of the permissions  string  so	that  applications  at
       least  have  an	indication that they may be working in an area they do
       not understand instead of assuming that they can translate the  permis‐
       sions  string into something that can be used. Future issues or related
       documents may define one or more specific characters to be  used	 based
       on  different  standard additional or alternative access control mecha‐
       nisms.

       As with many of the utilities that deal with filenames, the  output  of
       ls  for	multiple  files	 or in one of the long listing formats must be
       used carefully on systems where filenames can  contain  embedded	 white
       space.  Systems and system administrators should institute policies and
       user training to limit the use of such filenames.

       The number of disk blocks occupied by the file that it  reports	varies
       depending  on  underlying  file system type, block size units reported,
       and the method of calculating the number of blocks. On some file system
       types,  the  number is the actual number of blocks occupied by the file
       (counting indirect blocks and ignoring holes in the file); on others it
       is  calculated  based on the file size (usually making an allowance for
       indirect blocks, but ignoring holes).

EXAMPLES
       An example of a small directory tree being fully listed with ls -laRF a
       in the POSIX locale:

	      total 11
	      drwxr-xr-x   3 hlj      prog	    64 Jul  4 12:07 ./
	      drwxrwxrwx   4 hlj      prog	  3264 Jul  4 12:09 ../
	      drwxr-xr-x   2 hlj      prog	    48 Jul  4 12:07 b/
	      -rwxr--r--   1 hlj      prog	   572 Jul  4 12:07 foo*

	      a/b:
	      total 4
	      drwxr-xr-x   2 hlj      prog	    48 Jul  4 12:07 ./
	      drwxr-xr-x   3 hlj      prog	    64 Jul  4 12:07 ../
	      -rw-r--r--   1 hlj      prog	   700 Jul  4 12:07 bar

RATIONALE
       Some historical implementations of the ls utility show all entries in a
       directory except dot and dot-dot when a superuser  invokes  ls  without
       specifying  the -a option. When "normal" users invoke ls without speci‐
       fying -a, they should not see information about any  files  with	 names
       beginning with a period unless they were named as file operands.

       Implementations are expected to traverse arbitrary depths when process‐
       ing the -R option. The only limitation on depth should be based on run‐
       ning  out of physical storage for keeping track of untraversed directo‐
       ries.

       The -1 (one) option was	historically  found  in	 BSD  and  BSD-derived
       implementations	  only.	  It   is   required   in   this   volume   of
       IEEE Std 1003.1-2001 so that conforming applications might ensure  that
       output is one entry per line, even if the output is to a terminal.

       Generally,  this	 volume	 of  IEEE Std 1003.1-2001 is silent about what
       happens when options are given multiple times. In the cases of -C,  -l,
       and  -1,	 however,  it  does  specify  the results of these overlapping
       options. Since ls is one of the most aliased commands, it is  important
       that  the implementation perform intuitively. For example, if the alias
       were:

	      alias ls="ls -C"

       and the user typed ls -1, single-text-column output should result,  not
       an error.

       The  BSD	 ls provides a -A option (like -a, but dot and dot-dot are not
       written out). The small difference  from	 -a  did  not  seem  important
       enough to require both.

       Implementations may make -q the default for terminals to prevent trojan
       horse attacks on terminals with special escape sequences. This  is  not
       required because:

	* Some	control	 characters may be useful on some terminals; for exam‐
	  ple, a system might write them as "\001" or "^A" .

	* Special behavior for	terminals  is  not  relevant  to  applications
	  portability.

       An  early  proposal specified that the optional alternate access method
       flag had to be '+' if there was an alternate access method used on  the
       file  or	 <space>  if  there was not. This was changed to be <space> if
       there is not and a single printable character if	 there	is.  This  was
       done for three reasons:

	1. There  are  historical  implementations using characters other than
	   '+' .

	2. There are implementations that vary this  character	used  in  that
	   position to distinguish between various alternate access methods in
	   use.

	3. The standard developers did not want to preclude future  specifica‐
	   tions  that	might  need  a	way to specify more than one alternate
	   access method.

       Nonetheless, implementations providing a single alternate access method
       are encouraged to use '+' .

       In  an  early  proposal, the units used to specify the number of blocks
       occupied by files in a directory in an ls -l listing  were  implementa‐
       tion-defined.  This  was	 because  BSD  systems	have historically used
       1024-byte units and System V systems have  historically	used  512-byte
       units.  It was pointed out by BSD developers that their system has used
       512-byte units in some places and  1024-byte  units  in	other  places.
       (System	V  has	consistently  used  512.)   Therefore,	this volume of
       IEEE Std 1003.1-2001 usually specifies 512. Future releases of BSD  are
       expected	 to  consistently provide 512 bytes as a default with a way of
       specifying 1024-byte units where appropriate.

       The <date and time> field in the -l format is specified	only  for  the
       POSIX  locale.  As noted, the format can be different in other locales.
       No  mechanism  for  defining  this  is  present	in  this   volume   of
       IEEE Std 1003.1-2001, as the appropriate vehicle is a messaging system;
       that is, the format should be specified as a "message".

FUTURE DIRECTIONS
       The -s uses implementation-defined units and cannot be  used  portably;
       it may be withdrawn in a future version.

SEE ALSO
       chmod()	, find , the System Interfaces volume of IEEE Std 1003.1-2001,
       stat(),	the   Base   Definitions   volume   of	 IEEE Std 1003.1-2001,
       <sys/stat.h>

COPYRIGHT
       Portions	 of  this text are reprinted and reproduced in electronic form
       from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
       --  Portable  Operating	System	Interface (POSIX), The Open Group Base
       Specifications Issue 6, Copyright (C) 2001-2003	by  the	 Institute  of
       Electrical  and	Electronics  Engineers, Inc and The Open Group. In the
       event of any discrepancy between this version and the original IEEE and
       The  Open Group Standard, the original IEEE and The Open Group Standard
       is the referee document. The original Standard can be  obtained	online
       at http://www.opengroup.org/unix/online.html .

IEEE/The Open Group		     2003				 LS(P)
[top]

List of man pages available for YellowDog

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net