ls - Add -I to reverse -A
authorMatthew Dillon <dillon@apollo.backplane.com>
Fri, 14 Sep 2012 00:51:13 +0000 (17:51 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Fri, 14 Sep 2012 00:51:13 +0000 (17:51 -0700)
* ls implies -A when run as root. Add the -I option
  which disables this behavior.

* Note that -A and -I will override each other on the
  command line.

bin/ls/ls.1
bin/ls/ls.c

index dedbbc2..6cf90a9 100644 (file)
@@ -40,7 +40,7 @@
 .Nd list directory contents
 .Sh SYNOPSIS
 .Nm
-.Op Fl ABCFGHLPRTWabcdfghiklmnopqrstuwxy1
+.Op Fl ABCFGHILPRTWabcdfghiklmnopqrstuwxy1
 .Op Ar
 .Sh DESCRIPTION
 For each operand that names a
@@ -68,11 +68,10 @@ lexicographical order.
 The following options are available:
 .Bl -tag -width indent
 .It Fl A
-List all entries except for
-.Pa \&.
-and
-.Pa .. .
-Always set for the super-user.
+List all entries, including dot files, except for dot and dot-dot.
+Always set for the super-user, but may be turned
+off with
+.Fl I .
 .It Fl B
 Force printing of non-printable characters (as defined by
 .Xr ctype 3
@@ -117,6 +116,16 @@ none of the
 or
 .Fl l
 options are specified.
+.It Fl I
+This turns off the listing of dot files.
+Dot files are listed by default when
+.Nm
+is run as root.
+Note that the
+.Fl I
+and
+.Fl A
+options will override each other.
 .It Fl L
 If argument is a symbolic link, list the file or directory the link references
 rather than the link itself.
index 53ea105..90ff3dc 100644 (file)
@@ -165,12 +165,14 @@ main(int argc, char *argv[])
                        termwidth = atoi(p);
        }
 
-       /* Root is -A automatically. */
-       if (!getuid())
+       /*
+        * Root is -A automatically.  Turn off if -I specified.
+        */
+       if (getuid() == 0)
                f_listdot = 1;
 
        fts_options = FTS_PHYSICAL;
-       while ((ch = getopt(argc, argv, "1ABCFGHLPSRTWabcdfghiklmnopqrstuwxy"))
+       while ((ch = getopt(argc, argv, "1ABCFGHILPSRTWabcdfghiklmnopqrstuwxy"))
            != -1) {
                switch (ch) {
                /*
@@ -221,6 +223,9 @@ main(int argc, char *argv[])
                case 'H':
                        fts_options |= FTS_COMFOLLOW;
                        break;
+               case 'I':
+                       f_listdot = 0;
+                       break;
                case 'G':
                        if (setenv("CLICOLOR", "", 1) != 0)
                                warn("setenv: cannot set CLICOLOR");