Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
LS(1)			    General Commands Manual			 LS(1)

NAME
       ls -- list directory contents

SYNOPSIS
       ls [-ABCFGHLPRTWZabcdfghiklmnopqrstuwx1]	[file ...]

DESCRIPTION
       For  each  operand that names a file of a type other than directory, ls
       displays	its name as well as  any  requested,  associated  information.
       For  each  operand that names a file of type directory, ls displays the
       names of	files contained	within that directory,	as  well  as  any  re-
       quested,	associated information.

       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.

       The following options are available:

       -A      List all	entries	except for . and ...  Always set for  the  su-
	       per-user.

       -B      Force  printing	of  non-printable  characters  (as  defined by
	       ctype(3)	and current locale settings) in	file  names  as	 \xxx,
	       where xxx is the	numeric	value of the character in octal.

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

       -F      Display a slash (`/') immediately after each pathname that is a
	       directory, an asterisk (`*') after each that is executable,  an
	       at  sign	 (`@')	after each symbolic link, an equals sign (`=')
	       after each socket, a percent sign (`%')	after  each  whiteout,
	       and a vertical bar (`|')	after each that	is a FIFO.

       -G      Enable colorized	output.	 This option is	equivalent to defining
	       CLICOLOR	in the environment.  (See below.)

       -H      Symbolic	 links	on the command line are	followed.  This	option
	       is assumed if none of the -F, -d, or -l options are specified.

       -L      If argument is a	symbolic link, list the	file or	directory  the
	       link  references	rather than the	link itself.  This option can-
	       cels the	-P option.

       -P      If argument is a	symbolic link, list  the  link	itself	rather
	       than  the  object the link references.  This option cancels the
	       -H and -L options.

       -R      Recursively list	subdirectories encountered.

       -T      When used with the -l (lowercase	letter "ell") option,  display
	       complete	 time  information for the file, including month, day,
	       hour, minute, second, and year.

       -W      Display whiteouts when scanning directories.

       -Z      Display each file's MAC label.

       -a      Include directory entries whose names begin with	a dot (.).

       -b      As -B, but use C	escape codes whenever possible.

       -c      Use time	when file status  was  last  changed  for  sorting  or
	       printing.

       -d      Directories  are	 listed	 as  plain  files (not searched	recur-
	       sively).

       -f      Output is not sorted.

       -g      This option is deprecated and is	only available for compatibil-
	       ity with	4.3BSD;	it was used to display the group name  in  the
	       long (-l) format	output.

       -h      When  used  with	 the -l	option,	use unit suffixes: Byte, Kilo-
	       byte, Megabyte, Gigabyte, Terabyte and Petabyte in order	to re-
	       duce the	number of digits to three or less  using  base	2  for
	       sizes.

       -i      For  each file, print the file's	file serial number (inode num-
	       ber).

       -k      If the -s option	is specified, print the	file  size  allocation
	       in  kilobytes,  not blocks.  This option	overrides the environ-
	       ment variable BLOCKSIZE.

       -l      (The lowercase letter "ell".)  List in long format.   (See  be-
	       low.)   If the output is	to a terminal, a total sum for all the
	       file sizes is output on a line before the long listing.

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

       -n      Display	user  and group	IDs numerically	rather than converting
	       to a user or group name in a long (-l) output.

       -o      Include the file	flags in a long	(-l) output.

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

       -q      Force  printing	of non-graphic characters in file names	as the
	       character `?'; this is the default when output is to  a	termi-
	       nal.

       -r      Reverse	the  order  of the sort	to get reverse lexicographical
	       order or	the oldest entries first.

       -s      Display the number of file system blocks	actually used by  each
	       file, in	units of 512 bytes, 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.	 The environment variable BLOCKSIZE overrides the unit
	       size of 512 bytes.

       -t      Sort by time modified (most  recently  modified	first)	before
	       sorting the operands by lexicographical order.

       -u      Use  time  of  last access, instead of last modification	of the
	       file for	sorting	(-t) or	printing (-l).

       -w      Force raw printing of non-printable characters.	 This  is  the
	       default when output is not to a terminal.

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

       -1      (The  numeric  digit  "one".)  Force output to be one entry per
	       line.  This is the default when output is not to	a terminal.

       The -1, -C, -x, and -l options all override each	other;	the  last  one
       specified determines the	format used.

       The  -c	and -u options override	each other; the	last one specified de-
       termines	the file time used.

       The -B, -b, -w, and -q options all override each	other;	the  last  one
       specified determines the	format used for	non-printable characters.

       The  -H,	-L and -P options all override each other (either partially or
       fully); they are	applied	in the order specified.

       By default, ls lists one	entry per line to standard output; the	excep-
       tions are to terminals or when the -C or	-x options are specified.

       File  information is displayed with one or more <blank>s	separating the
       information associated with the -i, -s, and -l options.

   The Long Format
       If the -l option	is given, the following	information is	displayed  for
       each  file: file	mode, number of	links, owner name, group name, MAC la-
       bel, 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.  In addition, for each	directory whose	 contents  are
       displayed, the total number of 512-byte blocks used by the files	in the
       directory  is  displayed	on a line by itself immediately	before the in-
       formation for the files in the directory.

       If the modification time	of the file is more than 6 months in the  past
       or future, then the year	of the last modification is displayed in place
       of the hour and minute fields.

       If  the owner or	group names are	not a known user or group name,	or the
       -n option is given, the numeric ID's are	displayed.

       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 pre-
       ceded by	"->".

       The file	mode printed under the -l option consists of the  entry	 type,
       owner permissions, and group permissions.  The entry type character de-
       scribes the type	of file, as follows:

	     b	   Block special file.
	     c	   Character special file.
	     d	   Directory.
	     l	   Symbolic link.
	     s	   Socket link.
	     p	   FIFO.
	     -	   Regular file.

       The  next  three	 fields	 are three characters each: owner permissions,
       group permissions, and other permissions.  Each field has three charac-
       ter positions:

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

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

	     3.	  The first of the following that applies:

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

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

			x     The file	is  executable	or  the	 directory  is
			      searchable.

			-     The  file	 is  neither  readable,	writable, exe-
			      cutable, nor set-user-ID nor set-group-ID	 mode,
			      nor sticky.  (See	below.)

		  These	next two apply only to the third character in the last
		  group	(other permissions).

			T     The  sticky bit is set (mode 1000), but not exe-
			      cute or search  permission.   (See  chmod(1)  or
			      sticky(8).)

			t     The  sticky  bit	is  set	 (mode	1000),	and is
			      searchable  or  executable.   (See  chmod(1)  or
			      sticky(8).)

       The  next field contains	a plus (`+') character if the file has an ACL,
       or a space (` ')	if it does not.	 The ls	utility	does not show the  ac-
       tual ACL; use getfacl(1)	to do this.

EXAMPLES
       The  following is how to	do an ls listing sorted	by size	(and shows why
       ls does not need	a separate option for this):

	     ls	-l | sort -n +4

       Additionally, the -r flag to sort(1) may	be used	 to  get  the  results
       sorted from largest to smallest (a reverse sort).

DIAGNOSTICS
       The ls utility exits 0 on success, and >0 if an error occurs.

ENVIRONMENT
       The following environment variables affect the execution	of ls:

       BLOCKSIZE       If the environment variable BLOCKSIZE is	set, the block
		       counts (see -s) will be displayed in units of that size
		       block.

       CLICOLOR	       Use  ANSI  color	 sequences  to distinguish file	types.
		       See LSCOLORS below.  In addition	to the file types men-
		       tioned in the -F	option some extra  attributes  (setuid
		       bit set,	etc.) are also displayed.  The colorization is
		       dependent on a terminal type with the proper termcap(5)
		       capabilities.   The  default  "cons25"  console has the
		       proper capabilities, but	to display the	colors	in  an
		       xterm(1), for example, the TERM variable	must be	set to
		       "xterm-color".	Other terminal types may require simi-
		       lar adjustments.	 Colorization is silently disabled  if
		       the  output  isn't  directed  to	 a terminal unless the
		       CLICOLOR_FORCE variable is defined.

       CLICOLOR_FORCE  Color sequences are normally  disabled  if  the	output
		       isn't  directed	to a terminal.	This can be overridden
		       by setting this flag.  The TERM variable	still needs to
		       reference a color capable terminal however otherwise it
		       is not possible to determine which color	 sequences  to
		       use.

       COLUMNS	       If this variable	contains a string representing a deci-
		       mal  integer,  it  is used as the column	position width
		       for displaying  multiple-text-column  output.   The  ls
		       utility	calculates  how	 many pathname text columns to
		       display based on	the width provided.  (See -C and -x.)

       LANG	       The locale to use when determining the order of day and
		       month in	the long -l format output.  See	environ(7) for
		       more information.

       LSCOLORS	       The value of this variable describes what color to  use
		       for  which  attribute  when  colors  are	 enabled  with
		       CLICOLOR.  This string is a concatenation of  pairs  of
		       the format fb, where f is the foreground	color and b is
		       the background color.

		       The color designators are as follows:

			     a	   black
			     b	   red
			     c	   green
			     d	   brown
			     e	   blue
			     f	   magenta
			     g	   cyan
			     h	   light grey
			     A	   bold	black, usually shows up	as dark	grey
			     B	   bold	red
			     C	   bold	green
			     D	   bold	brown, usually shows up	as yellow
			     E	   bold	blue
			     F	   bold	magenta
			     G	   bold	cyan
			     H	   bold	light grey; looks like bright white
			     x	   default foreground or background

		       Note  that the above are	standard ANSI colors.  The ac-
		       tual display may	differ depending on the	color capabil-
		       ities of	the terminal in	use.

		       The order of the	attributes are as follows:

			     1.	  directory
			     2.	  symbolic link
			     3.	  socket
			     4.	  pipe
			     5.	  executable
			     6.	  block	special
			     7.	  character special
			     8.	  executable with setuid bit set
			     9.	  executable with setgid bit set
			     10.  directory writable to	 others,  with	sticky
				  bit
			     11.  directory writable to	others,	without	sticky
				  bit

		       The  default  is	 "exfxcxdxbxegedabagacad",  i.e.  blue
		       foreground and default background for regular  directo-
		       ries,  black  foreground	 and red background for	setuid
		       executables, etc.

       LS_COLWIDTHS    If this variable	is set,	 it  is	 considered  to	 be  a
		       colon-delimited	list of	minimum	column widths.	Unrea-
		       sonable and insufficient	widths are ignored (thus  zero
		       signifies a dynamically sized column).  Not all columns
		       have  changeable	widths.	 The fields are, in order: in-
		       ode, block count, number	of  links,  user  name,	 group
		       name, flags, file size, file name.

       TERM	       The  CLICOLOR  functionality depends on a terminal type
		       with color capabilities.

       TZ	       The  timezone  to  use  when  displaying	 dates.	   See
		       environ(7) for more information.

COMPATIBILITY
       The  group  field is now	automatically included in the long listing for
       files in	order to be compatible with the	IEEE  Std  1003.2  ("POSIX.2")
       specification.

SEE ALSO
       chflags(1),   chmod(1),	 getfacl(1),  sort(1),	xterm(1),  termcap(5),
       symlink(7), getfmac(8), sticky(8)

STANDARDS
       The ls utility conforms to IEEE Std 1003.1-2001 ("POSIX.1").

       The ACL support	is  compatible	with  IEEE  Std	 1003.2c  ("POSIX.2c")
       Draft 17	(withdrawn).

HISTORY
       An ls command appeared in Version 1 AT&T	UNIX.

BUGS
       To  maintain backward compatibility, the	relationships between the many
       options are quite complex.

FreeBSD	5.0			 May 19, 2002				 LS(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ls&sektion=1&manpath=FreeBSD+5.0-RELEASE>

home | help