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