diff options
author | Todd C. Miller <millert@cvs.openbsd.org> | 2009-03-05 15:13:31 +0000 |
---|---|---|
committer | Todd C. Miller <millert@cvs.openbsd.org> | 2009-03-05 15:13:31 +0000 |
commit | 68f3363dda760bc0bca756c00feacc333920748c (patch) | |
tree | 419edf2f40bf978743b95898c551782bbe699434 | |
parent | f8851e210dc6bedd7a24d993bfa9486f5ef53ac7 (diff) |
Add glob(7) and refer to it. OK jmc@ sobrado@
-rw-r--r-- | bin/csh/csh.1 | 5 | ||||
-rw-r--r-- | bin/ksh/ksh.1 | 6 | ||||
-rw-r--r-- | bin/ksh/sh.1 | 6 | ||||
-rw-r--r-- | lib/libc/gen/fnmatch.3 | 7 | ||||
-rw-r--r-- | lib/libc/gen/glob.3 | 7 | ||||
-rw-r--r-- | share/man/man7/Makefile | 8 | ||||
-rw-r--r-- | share/man/man7/glob.7 | 139 |
7 files changed, 160 insertions, 18 deletions
diff --git a/bin/csh/csh.1 b/bin/csh/csh.1 index 9220d2f2c16..c96b158c082 100644 --- a/bin/csh/csh.1 +++ b/bin/csh/csh.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: csh.1,v 1.59 2009/03/04 07:41:18 jmc Exp $ +.\" $OpenBSD: csh.1,v 1.60 2009/03/05 15:13:30 millert Exp $ .\" $NetBSD: csh.1,v 1.10 1995/03/21 09:02:35 cgd Exp $ .\" .\" Copyright (c) 1980, 1990, 1993 @@ -30,7 +30,7 @@ .\" .\" @(#)csh.1 8.2 (Berkeley) 1/21/94 .\" -.Dd $Mdocdate: March 4 2009 $ +.Dd $Mdocdate: March 5 2009 $ .Dt CSH 1 .Os .Sh NAME @@ -2703,6 +2703,7 @@ source of home directories for .Xr tty 4 , .Xr a.out 5 , .Xr environ 7 , +.Xr glob 7 , .Xr script 7 .Pp "An Introduction to the C shell", diff --git a/bin/ksh/ksh.1 b/bin/ksh/ksh.1 index d7d53ee3cf6..57d4d7dc833 100644 --- a/bin/ksh/ksh.1 +++ b/bin/ksh/ksh.1 @@ -1,8 +1,8 @@ -.\" $OpenBSD: ksh.1,v 1.126 2009/03/03 20:01:01 millert Exp $ +.\" $OpenBSD: ksh.1,v 1.127 2009/03/05 15:13:30 millert Exp $ .\" .\" Public Domain .\" -.Dd $Mdocdate: March 3 2009 $ +.Dd $Mdocdate: March 5 2009 $ .Dt KSH 1 .Os .Sh NAME @@ -5542,7 +5542,7 @@ Privileged shell profile. .Xr vi 1 , .Xr shells 5 , .Xr environ 7 , -.Xr re_format 7 , +.Xr glob 7 , .Xr script 7 .Rs .%A Morris Bolsky diff --git a/bin/ksh/sh.1 b/bin/ksh/sh.1 index 810c8a02257..bf2331d0b19 100644 --- a/bin/ksh/sh.1 +++ b/bin/ksh/sh.1 @@ -1,8 +1,8 @@ -.\" $OpenBSD: sh.1,v 1.80 2009/03/03 20:01:01 millert Exp $ +.\" $OpenBSD: sh.1,v 1.81 2009/03/05 15:13:30 millert Exp $ .\" .\" Public Domain .\" -.Dd $Mdocdate: March 3 2009 $ +.Dd $Mdocdate: March 5 2009 $ .Dt SH 1 .Os .Sh NAME @@ -3734,7 +3734,7 @@ Shell database. .Xr vi 1 , .Xr shells 5 , .Xr environ 7 , -.Xr re_format 7 , +.Xr glob 7 , .Xr script 7 .Rs .%A Morris Bolsky diff --git a/lib/libc/gen/fnmatch.3 b/lib/libc/gen/fnmatch.3 index 766055455fe..e5c437c9164 100644 --- a/lib/libc/gen/fnmatch.3 +++ b/lib/libc/gen/fnmatch.3 @@ -1,4 +1,4 @@ -.\" $OpenBSD: fnmatch.3,v 1.12 2007/05/31 19:19:28 jmc Exp $ +.\" $OpenBSD: fnmatch.3,v 1.13 2009/03/05 15:13:30 millert Exp $ .\" .\" Copyright (c) 1989, 1991, 1993 .\" The Regents of the University of California. All rights reserved. @@ -31,7 +31,7 @@ .\" .\" @(#)fnmatch.3 8.3 (Berkeley) 4/28/95 .\" -.Dd $Mdocdate: May 31 2007 $ +.Dd $Mdocdate: March 5 2009 $ .Dt FNMATCH 3 .Os .Sh NAME @@ -124,7 +124,8 @@ otherwise, it returns the value .Sh SEE ALSO .Xr sh 1 , .Xr glob 3 , -.Xr regex 3 +.Xr regex 3 , +.Xr glob 7 .Sh STANDARDS The .Fn fnmatch diff --git a/lib/libc/gen/glob.3 b/lib/libc/gen/glob.3 index f1e533cec12..7d4621d5307 100644 --- a/lib/libc/gen/glob.3 +++ b/lib/libc/gen/glob.3 @@ -1,4 +1,4 @@ -.\" $OpenBSD: glob.3,v 1.24 2007/05/31 19:19:28 jmc Exp $ +.\" $OpenBSD: glob.3,v 1.25 2009/03/05 15:13:30 millert Exp $ .\" .\" Copyright (c) 1989, 1991, 1993, 1994 .\" The Regents of the University of California. All rights reserved. @@ -29,7 +29,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd $Mdocdate: May 31 2007 $ +.Dd $Mdocdate: March 5 2009 $ .Dt GLOB 3 .Os .Sh NAME @@ -424,7 +424,8 @@ and .Sh SEE ALSO .Xr sh 1 , .Xr fnmatch 3 , -.Xr regexp 3 +.Xr regex 3 , +.Xr glob 7 .Sh STANDARDS The .Fn glob diff --git a/share/man/man7/Makefile b/share/man/man7/Makefile index b881c334989..29db1650d7f 100644 --- a/share/man/man7/Makefile +++ b/share/man/man7/Makefile @@ -1,11 +1,11 @@ -# $OpenBSD: Makefile,v 1.13 2005/05/12 09:12:57 jmc Exp $ +# $OpenBSD: Makefile,v 1.14 2009/03/05 15:13:30 millert Exp $ # $NetBSD: Makefile,v 1.6 1994/12/22 10:50:05 cgd Exp $ # missing: eqnchar.7 man.7 ms.7 term.7 -MAN= ascii.7 environ.7 hier.7 hostname.7 intro.7 kgdb.7 library-specs.7 \ - mailaddr.7 mdoc.7 mdoc.samples.7 mirroring-ports.7 operator.7 \ - packages.7 packages-specs.7 ports.7 script.7 securelevel.7 +MAN= ascii.7 environ.7 glob.7 hier.7 hostname.7 intro.7 kgdb.7 \ + library-specs.7 mailaddr.7 mdoc.7 mdoc.samples.7 mirroring-ports.7 \ + operator.7 packages.7 packages-specs.7 ports.7 script.7 securelevel.7 MLINKS= mdoc.7 mandoc.7 mdoc.samples.7 mandoc.samples.7 \ mirroring-ports.7 mirror-maker.7 diff --git a/share/man/man7/glob.7 b/share/man/man7/glob.7 new file mode 100644 index 00000000000..ab6067b8ded --- /dev/null +++ b/share/man/man7/glob.7 @@ -0,0 +1,139 @@ +.\" $OpenBSD: glob.7,v 1.1 2009/03/05 15:13:30 millert Exp $ +.\" +.\" Copyright (c) 2009 Todd C. Miller <Todd.Miller@courtesan.com> +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +.\" +.\" +.Dd $Mdocdate: March 5 2009 $ +.Dt GLOB 7 +.Os +.Sh NAME +.Nm glob +.Nd shell-style pattern matching +.Sh DESCRIPTION +Globbing characters +.Pq wildcards +are special characters used to perform pattern matching of pathnames and +command arguments in the +.Xr csh 1 , +.Xr ksh 1 , +and +.Xr sh 1 +shells as well as +the C library functions +.Xr fnmatch 3 +and +.Xr glob 3 . +A glob pattern is a word containing one or more unquoted +.Ql \&? +or +.Ql * +characters, or +.Dq [..] +sequences. +.Pp +Globs should not be confused with the more powerful +regular expressions used by programs such as +.Xr grep 1 . +While there is some overlap in the special characters used in regular +expressions and globs, their meaning is different. +.Pp +The pattern elements have the following meaning: +.Bl -tag -width Ds +.It \&? +Matches any single character. +.It \&* +Matches any sequence of zero or more characters. +.It [..] +Matches any of the characters inside the brackets. +Ranges of characters can be specified by separating two characters by a +.Ql - +(e.g.\& +.Dq [a0-9] +matches the letter +.Sq a +or any digit). +In order to represent itself, a +.Ql - +must either be quoted or the first or last character in the character list. +Similarly, a +.Ql \&] +must be quoted or the first character in the list if it is to represent itself +instead of the end of the list. +Also, a +.Ql \&! +appearing at the start of the list has special meaning (see below), so to +represent itself it must be quoted or appear later in the list. +.Pp +Within a bracket expression, the name of a +.Em character class +enclosed in +.Sq [: +and +.Sq :] +stands for the list of all characters belonging to that class. +Supported character classes: +.Bl -column "xdigit" "xdigit" "xdigit" -offset indent +.It Li "alnum" Ta "cntrl" Ta "lower" Ta "space" +.It Li "alpha" Ta "digit" Ta "print" Ta "upper" +.It Li "blank" Ta "graph" Ta "punct" Ta "xdigit" +.El +.Pp +These match characters using the macros specified in +.Xr ctype 3 . +A character class may not be used as an endpoint of a range. +.It [!..] +Like [..], +except it matches any character not inside the brackets. +.El +.Pp +Note that when matching a pathname, the path separator +.Ql / , +is not matched by a +.Ql \&? , +or +.Ql * , +character or by a +.Dq [..] +sequence. +Thus, +.Pa /usr/*/*/X11 +would match +.Pa /usr/X11R6/lib/X11 +and +.Pa /usr/X11R6/include/X11 +while +.Pa /usr/*/X11 +would not match either. +Likewise, +.Pa /usr/*/bin +would match +.Pa /usr/local/bin +but not +.Pa /usr/bin . +.Sh SEE ALSO +.Xr fnmatch 3 , +.Xr glob 3 , +.Xr re_format 7 +.Sh HISTORY +In early versions of +.Ux , +the shell did not do pattern expansion itself. +A dedicated program, +.Pa /etc/glob , +was used to perform the expansion and pass the results to a command. +In +.At v7 , +with the introduction of the Bourne shell, +this functionality was incorportated into the shell itself. |