type GlobFS … // Glob returns the names of all files matching pattern or nil // if there is no matching file. The syntax of patterns is the same // as in [path.Match]. The pattern may describe hierarchical names such as // usr/*/bin/ed. // // Glob ignores file system errors such as I/O errors reading directories. // The only possible returned error is [path.ErrBadPattern], reporting that // the pattern is malformed. // // If fs implements [GlobFS], Glob calls fs.Glob. // Otherwise, Glob uses [ReadDir] to traverse the directory tree // and look for matches for the pattern. func Glob(fsys FS, pattern string) (matches []string, err error) { … } func globWithLimit(fsys FS, pattern string, depth int) (matches []string, err error) { … } // cleanGlobPath prepares path for glob matching. func cleanGlobPath(path string) string { … } // glob searches for files matching pattern in the directory dir // and appends them to matches, returning the updated slice. // If the directory cannot be opened, glob returns the existing matches. // New matches are added in lexicographical order. func glob(fs FS, dir, pattern string, matches []string) (m []string, e error) { … } // hasMeta reports whether path contains any of the magic characters // recognized by path.Match. func hasMeta(path string) bool { … }