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