glob.n
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:9k
源码类别:

通讯编程

开发平台:

Visual C++

  1. '"
  2. '" Copyright (c) 1993 The Regents of the University of California.
  3. '" Copyright (c) 1994-1996 Sun Microsystems, Inc.
  4. '"
  5. '" See the file "license.terms" for information on usage and redistribution
  6. '" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  7. '" 
  8. '" RCS: @(#) $Id: glob.n,v 1.12.2.1 2004/10/27 12:52:40 dkf Exp $
  9. '" 
  10. .so man.macros
  11. .TH glob n 8.3 Tcl "Tcl Built-In Commands"
  12. .BS
  13. '" Note:  do not modify the .SH NAME line immediately below!
  14. .SH NAME
  15. glob - Return names of files that match patterns
  16. .SH SYNOPSIS
  17. fBglob fR?fIswitchesfR? fIpattern fR?fIpattern ...fR?
  18. .BE
  19. .SH DESCRIPTION
  20. .PP
  21. This command performs file name ``globbing'' in a fashion similar to
  22. the csh shell.  It returns a list of the files whose names match any
  23. of the fIpatternfR arguments.
  24. .LP
  25. If the initial arguments to fBglobfR start with fB-fR then
  26. they are treated as switches.  The following switches are
  27. currently supported:
  28. .VS 8.3
  29. .TP
  30. fB-directoryfR fIdirectoryfR
  31. Search for files which match the given patterns starting in the given
  32. fIdirectoryfR.  This allows searching of directories whose name
  33. contains glob-sensitive characters without the need to quote such
  34. characters explicitly.  This option may not be used in conjunction with
  35. fB-pathfR, which is used to allow searching for complete file paths
  36. whose names may contain glob-sensitive characters.
  37. .TP
  38. fB-joinfR
  39. The remaining pattern arguments are treated as a single pattern
  40. obtained by joining the arguments with directory separators.
  41. .VE 8.3
  42. .TP
  43. fB-nocomplainfR
  44. Allows an empty list to be returned without error;  without this
  45. switch an error is returned if the result list would be empty.
  46. .VS 8.3
  47. .TP
  48. fB-pathfR fIpathPrefixfR
  49. Search for files with the given fIpathPrefixfR where the rest of the name
  50. matches the given patterns.  This allows searching for files with names
  51. similar to a given file (as opposed to a directory) even when the names 
  52. contain glob-sensitive 
  53. characters.  This option may not be used in conjunction with
  54. fB-directoryfR.  For example, to find all files with the same root name
  55. as $path, but differing extensions, you should use fBglob 
  56. -path [file rootname $path] .*fR which will work even if $path contains
  57. numerous glob-sensitive characters.
  58. .TP
  59. fB-tailsfR
  60. Only return the part of each file found which follows the last directory
  61. named in any fB-directoryfR or fB-pathfR path specification.  
  62. Thus fBglob -tails -directory $dir *fR is equivalent to 
  63. fBset pwd [pwd] ; cd $dir ; glob *; cd $pwdfR.  For 
  64. fB-pathfR specifications, the returned names will include the last
  65. path segment, so fBglob -tails -path [file rootname ~/foo.tex] .*fR 
  66. will return paths like fBfoo.aux foo.bib foo.texfR etc.
  67. .TP
  68. fB-typesfR fItypeListfR
  69. Only list files or directories which match fItypeListfR, where the items
  70. in the list have two forms.  The first form is like the -type option of
  71. the Unix find command:
  72. fIbfR (block special file),
  73. fIcfR (character special file),
  74. fIdfR (directory),
  75. fIffR (plain file),
  76. fIlfR (symbolic link),
  77. fIpfR (named pipe),
  78. or fIsfR (socket), where multiple types may be specified in the list.
  79. fBGlobfR will return all files which match at least one of the types given.
  80. Note that symbolic links will be returned both if fB-types lfR is given, 
  81. or if the target of a link matches the requested type.  So, a link to
  82. a directory will be returned if fB-types dfR was specified.
  83. .RS
  84. .PP
  85. The second form specifies types where all the types given must match.
  86. These are fIrfR, fIwfR, fIxfR as file permissions, and
  87. fIreadonlyfR, fIhiddenfR as special permission cases.  On the
  88. Macintosh, MacOS types and creators are also supported, where any item
  89. which is four characters long is assumed to be a MacOS type
  90. (e.g. fBTEXTfR).  Items which are of the form fI{macintosh type XXXX}fR
  91. or fI{macintosh creator XXXX}fR will match types or creators
  92. respectively.  Unrecognized types, or specifications of multiple MacOS
  93. types/creators will signal an error.
  94. .PP
  95. The two forms may be mixed, so fB-types {d f r w}fR will find all
  96. regular files OR directories that have both read AND write permissions.
  97. The following are equivalent:
  98. .RS
  99. .CS
  100. fBglob -type d *fR
  101. fBglob */fR
  102. .CE
  103. .RE
  104. except that the first case doesn't return the trailing ``/'' and
  105. is more platform independent.
  106. .RE
  107. .VE 8.3
  108. .TP
  109. fB-|-fR
  110. Marks the end of switches.  The argument following this one will
  111. be treated as a fIpatternfR even if it starts with a fB-fR.
  112. .PP
  113. The fIpatternfR arguments may contain any of the following
  114. special characters:
  115. .TP 10
  116. fB?fR
  117. Matches any single character.
  118. .TP 10
  119. fB*fR
  120. Matches any sequence of zero or more characters.
  121. .TP 10
  122. fB[fIcharsfB]fR
  123. Matches any single character in fIcharsfR.  If fIcharsfR
  124. contains a sequence of the form fIafB-fIbfR then any
  125. character between fIafR and fIbfR (inclusive) will match.
  126. .TP 10
  127. fBefIxfR
  128. Matches the character fIxfR.
  129. .TP 10
  130. fB{fIafB,fIbfB,fI...fR}
  131. Matches any of the strings fIafR, fIbfR, etc.
  132. .LP
  133. On Unix, as with csh, a ``.'' at the beginning of a file's name or just
  134. after a ``/'' must be matched explicitly or with a {} construct,
  135. unless the ``-types hidden'' flag is given (since ``.'' at the beginning 
  136. of a file's name indicates that it is hidden).  On other platforms,
  137. files beginning with a ``.'' are handled no differently to any others,
  138. except the special directories ``.'' and ``..'' which must be matched
  139. explicitly (this is to avoid a recursive pattern like ``glob -join * *
  140. * *'' from recursing up the directory hierarchy as well as down).
  141. In addition, all ``/'' characters must be matched explicitly.
  142. .LP
  143. If the first character in a fIpatternfR is ``~'' then it refers
  144. to the home directory for the user whose name follows the ``~''.
  145. If the ``~'' is followed immediately by ``/'' then the value of
  146. the HOME environment variable is used.
  147. .LP
  148. The fBglobfR command differs from csh globbing in two ways.
  149. First, it does not sort its result list (use the fBlsortfR
  150. command if you want the list sorted).
  151. Second, fBglobfR only returns the names of files that actually
  152. exist;  in csh no check for existence is made unless a pattern
  153. contains a ?, *, or [] construct.
  154. .LP
  155. When the fBglobfR command returns relative paths whose filenames
  156. start with a tilde ``~'' (for example through fBglob *fR or 
  157. fBglob -tailsfR, the returned list will not quote the tilde with
  158. ``./''.  This means care must be taken if those names are later to
  159. be used with fBfile joinfR, to avoid them being interpreted as
  160. absolute paths pointing to a given user's home directory.
  161. .SH "PORTABILITY ISSUES"
  162. .PP
  163. Unlike other Tcl commands that will accept both network and native
  164. style names (see the fBfilenamefR manual entry for details on how
  165. native and network names are specified), the fBglobfR command only
  166. accepts native names.  
  167. .TP
  168. fBWindowsfR
  169. .
  170. For Windows UNC names, the servername and sharename components of the path
  171. may not contain ?, *, or [] constructs.  On Windows NT, if fIpatternfR is
  172. of the form ``fB~fIusernamefB@fIdomainfR'' it refers to the home
  173. directory of the user whose account information resides on the specified NT
  174. domain server.  Otherwise, user account information is obtained from
  175. the local computer.  On Windows 95 and 98, fBglobfR accepts patterns
  176. like ``.../'' and ``..../'' for successively higher up parent directories.
  177. .
  178. Since the backslash character has a special meaning to the glob 
  179. command, glob patterns containing Windows style path separators need 
  180. special care. The pattern fIC:eefooee*fR is interpreted as 
  181. fIC:efooe*fR where fIeffR will match the single character fIffR 
  182. and fIe*fR will match the single character fI*fR and will not be 
  183. interpreted as a wildcard character. One solution to this problem is 
  184. to use the Unix style forward slash as a path separator. Windows style 
  185. paths can be converted to Unix style paths with the command fBfile
  186. join $pathfR (or fBfile normalize $pathfR in Tcl 8.4). 
  187. .TP 
  188. fBMacintoshfR 
  189. When using the options, fB-directoryfR, fB-joinfR or fB-pathfR, glob
  190. assumes the directory separator for the entire pattern is the standard
  191. ``:''.  When not using these options, glob examines each pattern argument
  192. and uses ``/'' unless the pattern contains a ``:''.
  193. .SH EXAMPLES
  194. Find all the Tcl files in the current directory:
  195. .CS
  196. fBglobfR *.tcl
  197. .CE
  198. .PP
  199. Find all the Tcl files in the user's home directory, irrespective of
  200. what the current directory is:
  201. .CS
  202. fBglobfR -directory ~ *.tcl
  203. .CE
  204. .PP
  205. Find all subdirectories of the current directory:
  206. .CS
  207. fBglobfR -type d *
  208. .CE
  209. .PP
  210. Find all files whose name contains an "a", a "b" or the sequence "cde":
  211. .CS
  212. fBglobfR -type f *{a,b,cde}*
  213. .CE
  214. .SH "SEE ALSO"
  215. file(n)
  216. .SH KEYWORDS
  217. exist, file, glob, pattern