xref: /dragonfly/bin/ls/ls.1 (revision 1bc30ec4)
1.\" Copyright (c) 1980, 1990, 1991, 1993, 1994
2.\"	The Regents of the University of California.  All rights reserved.
3.\"
4.\" This code is derived from software contributed to Berkeley by
5.\" the Institute of Electrical and Electronics Engineers, Inc.
6.\"
7.\" Redistribution and use in source and binary forms, with or without
8.\" modification, are permitted provided that the following conditions
9.\" are met:
10.\" 1. Redistributions of source code must retain the above copyright
11.\"    notice, this list of conditions and the following disclaimer.
12.\" 2. Redistributions in binary form must reproduce the above copyright
13.\"    notice, this list of conditions and the following disclaimer in the
14.\"    documentation and/or other materials provided with the distribution.
15.\" 3. Neither the name of the University nor the names of its contributors
16.\"    may be used to endorse or promote products derived from this software
17.\"    without specific prior written permission.
18.\"
19.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
20.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
23.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29.\" SUCH DAMAGE.
30.\"
31.\"     @(#)ls.1	8.7 (Berkeley) 7/29/94
32.\" $FreeBSD: src/bin/ls/ls.1,v 1.86 2005/02/13 22:25:09 ru Exp $
33.\"
34.Dd December 28, 2020
35.Dt LS 1
36.Os
37.Sh NAME
38.Nm ls
39.Nd list directory contents
40.Sh SYNOPSIS
41.Nm
42.Op Fl 1ABCFGHILPRSTW_abcdfghiklmnopqrstuwxy
43.Op Fl D Ar format
44.Op Ar
45.Sh DESCRIPTION
46For each operand that names a
47.Ar file
48of a type other than
49directory,
50.Nm
51displays its name as well as any requested,
52associated information.
53For each operand that names a
54.Ar file
55of type directory,
56.Nm
57displays the names of files contained
58within that directory, as well as any requested, associated
59information.
60.Pp
61If no operands are given, the contents of the current
62directory are displayed.
63If more than one operand is given,
64non-directory operands are displayed first; directory
65and non-directory operands are sorted separately and in
66lexicographical order.
67.Pp
68The following options are available:
69.Bl -tag -width indent
70.It Fl A
71List all entries, including dot files, except for dot and dot-dot.
72Always set for the super-user, but may be turned
73off with
74.Fl I .
75.It Fl B
76Force printing of non-printable characters (as defined by
77.Xr ctype 3
78and current locale settings) in file names as
79.Li \e Ns Va xxx ,
80where
81.Va xxx
82is the numeric value of the character in octal.
83.It Fl C
84Force multi-column output; this is the default when output is to a terminal.
85.It Fl D Ar format
86When printing in the long
87.Pq Fl l
88format, use
89.Ar format
90to format the date and time output.
91The argument
92.Ar format
93is a string used by
94.Xr strftime 3 .
95Depending on the choice of format string, this may result in a
96different number of columns in the output.
97This option overrides the
98.Fl T
99option.
100.It Fl F
101Display a slash
102.Pq Ql /
103immediately after each pathname that is a directory,
104an asterisk
105.Pq Ql *
106after each that is executable,
107an at sign
108.Pq Ql @
109after each symbolic link,
110an equals sign
111.Pq Ql =
112after each socket,
113a percent sign
114.Pq Ql %
115after each whiteout,
116and a vertical bar
117.Pq Ql \&|
118after each that is a
119.Tn FIFO .
120.It Fl G
121Enable colorized output.
122This option is equivalent to defining
123.Ev CLICOLOR
124in the environment.
125(See below.)
126This functionality can be compiled out by removing the definition of
127.Ev COLORLS .
128.It Fl H
129Symbolic links on the command line are followed.
130This option is assumed if
131none of the
132.Fl F , d ,
133or
134.Fl l
135options are specified.
136.It Fl I
137This turns off the listing of dot files.
138Dot files are listed by default when
139.Nm
140is run as root.
141Note that the
142.Fl I
143and
144.Fl A
145options will override each other.
146.It Fl L
147If argument is a symbolic link, list the file or directory the link references
148rather than the link itself.
149This option cancels the
150.Fl P
151option.
152.It Fl P
153If argument is a symbolic link, list the link itself rather than the
154object the link references.
155This option cancels the
156.Fl H
157and
158.Fl L
159options.
160.It Fl R
161Recursively list subdirectories encountered.
162.It Fl S
163Sort by size (largest file first) before sorting the operands in
164lexicographical order.
165.It Fl T
166When used with the
167.Fl l
168(lowercase letter
169.Dq ell )
170option, display complete time information for the file, including
171month, day, hour, minute, second, and year (named locales use the
172ISO 8601 extended format).
173.It Fl W
174Display whiteouts when scanning directories.
175.It Fl a
176Include directory entries whose names begin with a
177dot
178.Pq Pa \&. .
179.It Fl b
180As
181.Fl B ,
182but use
183.Tn C
184escape codes whenever possible.
185.It Fl c
186Use time when file status was last changed for sorting or printing.
187.It Fl d
188Directories are listed as plain files (not searched recursively).
189.It Fl f
190Output is not sorted.
191This option implies
192.Fl a .
193.It Fl g
194This option is deprecated and is only available for compatibility
195with
196.Bx 4.3 ;
197it was used to display the group name in the long
198.Pq Fl l
199format output.
200.It Fl h
201When used with the
202.Fl l
203option, use unit suffixes: Byte, Kilobyte, Megabyte, Gigabyte, Terabyte
204and Petabyte in order to reduce the number of digits to four or fewer
205using base 2 for sizes.
206.It Fl i
207For each file, print the file's file serial number (inode number).
208.It Fl k
209If the
210.Fl s
211option is specified, print the file size allocation in kilobytes,
212not blocks.
213This option overrides the environment variable
214.Ev BLOCKSIZE .
215Note that
216.Fl k
217is mutually exclusive to
218.Fl h ,
219and later
220.Fl k
221will nullify earlier
222.Fl h .
223.It Fl l
224(The lowercase letter
225.Dq ell . )
226List in long format.
227(See below.)
228A total sum (in blocks, see the
229.Fl s
230option for the block size unit) for all the file
231sizes is output on a line before the long listing.
232.It Fl m
233Stream output format; list files across the page, separated by commas.
234.It Fl n
235Display user and group IDs numerically rather than converting to a user
236or group name in a long
237.Pq Fl l
238output.
239.It Fl o
240Include the file flags in a long
241.Pq Fl l
242output.
243.It Fl p
244Write a slash
245.Pq Ql /
246after each filename if that file is a directory.
247.It Fl q
248Force printing of non-graphic characters in file names as
249the character
250.Ql \&? ;
251this is the default when output is to a terminal.
252.It Fl r
253Reverse the order of the sort to get reverse
254lexicographical order or the oldest entries first.
255.It Fl s
256Display the number of file system blocks actually used by each file, in units
257of 512 bytes, where partial units are rounded up to the next integer value.
258A total sum for all the file
259sizes is output on a line before the listing.
260The environment variable
261.Ev BLOCKSIZE
262overrides the unit size of 512 bytes.
263.It Fl t
264Sort by time modified (most recently modified
265first) before sorting the operands by lexicographical
266order.
267.It Fl u
268Use time of last access,
269instead of last modification
270of the file for sorting
271.Pq Fl t
272or printing
273.Pq Fl l .
274.It Fl w
275Force raw printing of non-printable characters.
276This is the default
277when output is not to a terminal.
278.It Fl x
279The same as
280.Fl C ,
281except that the multi-column output is produced with entries sorted
282across, rather than down, the columns.
283.It Fl 1
284(The numeric digit
285.Dq one . )
286Force output to be
287one entry per line.
288This is the default when
289output is not to a terminal.
290.It Fl _
291(underscore) When printing in the long
292.Pq Fl l
293format, use GMT based date and time output with nanotime timestamp.
294.El
295.Pp
296The
297.Fl 1 , C , x ,
298and
299.Fl l
300options all override each other; the last one specified determines
301the format used.
302.Pp
303The
304.Fl c
305and
306.Fl u
307options override each other; the last one specified determines
308the file time used.
309.Pp
310The
311.Fl S
312and
313.Fl t
314options override each other; the last one specified determines
315the sort order used.
316.Pp
317The
318.Fl B , b , w ,
319and
320.Fl q
321options all override each other; the last one specified determines
322the format used for non-printable characters.
323.Pp
324The
325.Fl H , L
326and
327.Fl P
328options all override each other (either partially or fully); they
329are applied in the order specified.
330.Pp
331By default,
332.Nm
333lists one entry per line to standard
334output; the exceptions are to terminals or when the
335.Fl C
336or
337.Fl x
338options are specified.
339.Pp
340File information is displayed with one or more
341.Ao blank Ac Ns s
342separating the information associated with the
343.Fl i , s ,
344and
345.Fl l
346options.
347.Ss The Long Format
348If the
349.Fl l
350option is given, the following information
351is displayed for each file:
352file mode,
353number of links, owner name, group name,
354number of bytes in the file,
355last modified time in either per POSIX requirements or
356using the format DD-MMM-YYYY hh:ss, and the pathname.
357In addition, for each directory whose contents are displayed, the total
358number of 512-byte blocks used by the files in the directory is displayed
359on a line by itself immediately before the information for the files in the
360directory.
361.Pp
362In the POSIX locale, If the modification time of the file is in the future,
363or more than 6 months in the past, then the year of the last modification
364is displayed in place of the hour and minute fields.
365.Pp
366If the owner or group names are not a known user or group name,
367or the
368.Fl n
369option is given,
370the numeric ID's are displayed.
371.Pp
372If the file is a character special or block special file,
373the major and minor device numbers for the file are displayed
374in the size field.
375If the file is a symbolic link the pathname of the
376linked-to file is preceded by
377.Dq Li -> .
378.Pp
379The file mode printed under the
380.Fl l
381option consists of the
382entry type and the permissions.
383The entry type character describes the type of file, as
384follows:
385.Pp
386.Bl -tag -width 4n -offset indent -compact
387.It Sy b
388Block special file.
389.It Sy c
390Character special file.
391.It Sy d
392Directory.
393.It Sy l
394Symbolic link.
395.It Sy s
396Socket link.
397.It Sy p
398.Tn FIFO .
399.It Sy \-
400Regular file.
401.El
402.Pp
403The next three fields
404are three characters each:
405owner permissions,
406group permissions, and
407other permissions.
408Each field has three character positions:
409.Bl -enum -offset indent
410.It
411If
412.Sy r ,
413the file is readable; if
414.Sy \- ,
415it is not readable.
416.It
417If
418.Sy w ,
419the file is writable; if
420.Sy \- ,
421it is not writable.
422.It
423The first of the following that applies:
424.Bl -tag -width 4n -offset indent
425.It Sy S
426If in the owner permissions, the file is not executable and
427set-user-ID mode is set.
428If in the group permissions, the file is not executable
429and set-group-ID mode is set.
430.It Sy s
431If in the owner permissions, the file is executable
432and set-user-ID mode is set.
433If in the group permissions, the file is executable
434and setgroup-ID mode is set.
435.It Sy x
436The file is executable or the directory is
437searchable.
438.It Sy \-
439The file is neither readable, writable, executable,
440nor set-user-ID nor set-group-ID mode, nor sticky.
441(See below.)
442.El
443.Pp
444These next two apply only to the third character in the last group
445(other permissions).
446.Bl -tag -width 4n -offset indent
447.It Sy T
448The sticky bit is set
449(mode
450.Li 1000 ) ,
451but not execute or search permission.
452(See
453.Xr chmod 1
454or
455.Xr sticky 8 . )
456.It Sy t
457The sticky bit is set (mode
458.Li 1000 ) ,
459and is searchable or executable.
460(See
461.Xr chmod 1
462or
463.Xr sticky 8 . )
464.El
465.El
466.Sh ENVIRONMENT
467The following environment variables affect the execution of
468.Nm :
469.Bl -tag -width ".Ev CLICOLOR_FORCE"
470.It Ev BLOCKSIZE
471If the environment variable
472.Ev BLOCKSIZE
473is set, the block counts
474(see
475.Fl s )
476will be displayed in units of that size block.
477.It Ev CLICOLOR
478Use
479.Tn ANSI
480color sequences to distinguish file types.
481See
482.Ev LSCOLORS
483below.
484In addition to the file types mentioned in the
485.Fl F
486option some extra attributes (setuid bit set, etc.) are also displayed.
487The colorization is dependent on a terminal type with the proper
488.Xr termcap 5
489capabilities.
490The default
491.Dq Li cons25
492console has the proper capabilities,
493but to display the colors in an
494.Xr xterm 1 ,
495for example,
496the
497.Ev TERM
498variable must be set to
499.Dq Li xterm-color .
500Other terminal types may require similar adjustments.
501Colorization
502is silently disabled if the output is not directed to a terminal
503unless the
504.Ev CLICOLOR_FORCE
505variable is defined.
506.It Ev CLICOLOR_FORCE
507Color sequences are normally disabled if the output is not directed to
508a terminal.
509This can be overridden by setting this variable.
510The
511.Ev TERM
512variable still needs to reference a color capable terminal however
513otherwise it is not possible to determine which color sequences to
514use.
515.It Ev COLUMNS
516If this variable contains a string representing a
517decimal integer, it is used as the
518column position width for displaying
519multiple-text-column output.
520The
521.Nm
522utility calculates how
523many pathname text columns to display
524based on the width provided.
525(See
526.Fl C
527and
528.Fl x . )
529.It Ev LANG
530The locale to use when determining the order of day and month in the long
531.Fl l
532format output.
533See
534.Xr environ 7
535for more information.
536.It Ev LSCOLORS
537The value of this variable describes what color to use for which
538attribute when colors are enabled with
539.Ev CLICOLOR .
540This string is a concatenation of pairs of the format
541.Ar f Ns Ar b ,
542where
543.Ar f
544is the foreground color and
545.Ar b
546is the background color.
547.Pp
548The color designators are as follows:
549.Pp
550.Bl -tag -width 4n -offset indent -compact
551.It Sy a
552black
553.It Sy b
554red
555.It Sy c
556green
557.It Sy d
558brown
559.It Sy e
560blue
561.It Sy f
562magenta
563.It Sy g
564cyan
565.It Sy h
566light grey
567.It Sy A
568bold black, usually shows up as dark grey
569.It Sy B
570bold red
571.It Sy C
572bold green
573.It Sy D
574bold brown, usually shows up as yellow
575.It Sy E
576bold blue
577.It Sy F
578bold magenta
579.It Sy G
580bold cyan
581.It Sy H
582bold light grey; looks like bright white
583.It Sy x
584default foreground or background
585.El
586.Pp
587Note that the above are standard
588.Tn ANSI
589colors.
590The actual display may differ
591depending on the color capabilities of the terminal in use.
592.Pp
593The order of the attributes are as follows:
594.Pp
595.Bl -enum -offset indent -compact
596.It
597directory
598.It
599symbolic link
600.It
601socket
602.It
603pipe
604.It
605executable
606.It
607block special
608.It
609character special
610.It
611executable with setuid bit set
612.It
613executable with setgid bit set
614.It
615directory writable to others, with sticky bit
616.It
617directory writable to others, without sticky bit
618.El
619.Pp
620The default is
621.Qq "exfxcxdxbxegedabagacad" ,
622i.e., blue foreground and
623default background for regular directories, black foreground and red
624background for setuid executables, etc.
625.It Ev LS_COLWIDTHS
626If this variable is set, it is considered to be a
627colon-delimited list of minimum column widths.
628Unreasonable
629and insufficient widths are ignored (thus zero signifies
630a dynamically sized column).
631Not all columns have changeable widths.
632The fields are,
633in order: inode, block count, number of links, user name,
634group name, flags, file size, file name.
635.It Ev TERM
636The
637.Ev CLICOLOR
638functionality depends on a terminal type with color capabilities.
639.It Ev TZ
640The timezone to use when displaying dates.
641See
642.Xr environ 7
643for more information.
644.El
645.Sh COMPATIBILITY
646The group field is now automatically included in the long listing for
647files in order to be compatible with the
648.St -p1003.2
649specification.
650.Sh SEE ALSO
651.Xr chflags 1 ,
652.Xr chmod 1 ,
653.Xr sort 1 ,
654.Xr xterm 1 Pq Pa x11/xterm ,
655.Xr strftime 3 ,
656.Xr termcap 5 ,
657.Xr symlink 7 ,
658.Xr sticky 8
659.Sh STANDARDS
660With the exception of options
661.Fl g ,
662.Fl n
663and
664.Fl o ,
665the
666.Nm
667utility conforms to
668.St -p1003.1-2001 .
669The options
670.Fl B , D , G , I , T , W , b , h , w , y
671and
672.Fl _
673are compatible extensions not defined in
674.St -p1003.1-2001 .
675.Sh HISTORY
676An
677.Nm
678command appeared in
679.At v1 .
680.Sh BUGS
681To maintain backward compatibility, the relationships between the many
682options are quite complex.
683