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