NAME
       glob - Return names of files that match patterns

SYNOPSIS
       glob ?switches? pattern ?pattern ...?


DESCRIPTION
       This  command performs file name ``globbing'' in a fashion
       similar to the csh shell.  It returns a list of the  files
       whose names match any of the pattern arguments.

       If  the  initial  arguments to glob start with - then they
       are treated as switches.  The following switches are  cur-
       rently supported:

       -directory directory
              Search  for  files  which  match the given patterns
              starting  in  the  given  directory.   This  allows
              searching  of directories whose name contains glob-
              sensitive characters without the need to quote such
              characters explicitly.  This option may not be used
              in conjunction with -path.

       -join  The remaining pattern arguments are  treated  as  a
              single  pattern  obtained  by joining the arguments
              with directory separators.

       -nocomplain
              Allows an empty list to be returned without  error;
              without  this  switch  an  error is returned if the
              result list would be empty.

       -path pathPrefix
              Search for files with the  given  pathPrefix  where
              the  rest  of  the name matches the given patterns.
              This allows searching for files with names  similar
              to  a  given file even when the names contain glob-
              sensitive characters.  This option may not be  used
              in conjunction with -directory.

       -types typeList
              Only  list  files  or directories which match type-
              List, where the items in the list have  two  forms.
              The first form is like the -type option of the Unix
              find command: b (block special file), c  (character
              special  file),  d  (directory),  f (plain file), l
              (symbolic link), p (named  pipe),  or  s  (socket),
              where  multiple types may be specified in the list.
              Glob will return all files which match at least one
              of the types given.

              The second form specifies types where all the types
              given must match.   These  are  r,  w,  x  as  file
              permissions,  and  readonly, hidden as special per-
              mission cases.  On the Macintosh, MacOS  types  and
              creators  are  also supported, where any item which
              is four characters long is assumed to  be  a  MacOS
              type  (e.g.  TEXT).   Items  which  are of the form
              {macintosh type XXXX} or {macintosh  creator  XXXX}
              will   match   types   or   creators  respectively.
              Unrecognised types, or specifications  of  multiple
              MacOS types/creators will signal an error.

              The  two  forms  may  be mixed, so -types {d f r w}
              will find all regular  files  OR  directories  that
              have  both read AND write permissions.  The follow-
              ing are equivalent:
                             glob -type d *
                             glob */
              except that  the  first  case  doesn't  return  the
              trailing ``/'' and is more platform independent.

       --     Marks  the end of switches.  The argument following
              this one will be treated as a pattern  even  if  it
              starts with a -.

       The  pattern  arguments  may  contain any of the following
       special characters:

       ?         Matches any single character.

       *         Matches any sequence of zero or more characters.

       [chars]   Matches any single character in chars.  If chars
                 contains a sequence of the  form  a-b  then  any
                 character  between  a  and  b  (inclusive)  will
                 match.

       \x        Matches the character x.

       {a,b,...} Matches any of the strings a, b, etc.

       As with csh, a  ``.'' at the beginning of a file's name or
       just after a ``/'' must be matched explicitly or with a {}
       construct.  In addition,  all  ``/''  characters  must  be
       matched explicitly.

       If  the  first  character  in  a  pattern is ``~'' then it
       refers to the home directory for the user whose name  fol-
       lows  the  ``~''.  If the ``~'' is followed immediately by
       ``/'' then the value of the HOME environment  variable  is
       used.

       The  glob  command  differs from csh globbing in two ways.
       First, it does not sort its result  list  (use  the  lsort
       command  if  you want the list sorted).  Second, glob only
       returns the names of files that actually exist;  in csh no
       check for existence is made unless a pattern contains a ?,
       *, or [] construct.


PORTABILITY ISSUES
       Unlike other Tcl commands that will  accept  both  network
       and  native style names (see the filename manual entry for
       details on how native and network  names  are  specified),
       the glob command only accepts native names.

       Windows
              For Windows UNC names, the servername and sharename
              components of the path may not contain ?, *, or  []
              constructs.   On  Windows  NT, if pattern is of the
              form ``~username@domain'' it  refers  to  the  home
              directory  of  the  user  whose account information
              resides on the specified NT domain server.   Other-
              wise, user account information is obtained from the
              local computer.  On Windows 95 and 98, glob accepts
              patterns  like  ``.../''  and ``..../'' for succes-
              sively higher up parent directories.

       Macintosh
              When using the options, -dir, -join or -path,  glob
              assumes the directory separator for the entire pat-
              tern is the standard ``:''.  When not  using  these
              options,  glob  examines  each pattern argument and
              uses ``/'' unless the pattern contains a ``:''.


SEE ALSO
       file(n)


KEYWORDS
       exist, file, glob, pattern
