Glob: Unix-Style globbing
NOTE: This library is deprecated; use file/glob, instead.
(require glob) | package: glob |
A glob is a pattern over path strings.
Typed Racket users should (require glob/typed).You can use glob in a typed module via require/typed; however, bindings from glob/typed cannot be used in untyped code.
1 API Functions
procedure
(glob pattern [#:with-dotfiles? dotfiles?]) → (listof path-string)
pattern : string dotfiles? : boolean = #f
procedure
(in-glob pattern [ #:with-dotfiles? dotfiles?]) → (sequenceof path-string) pattern : string dotfiles? : boolean = #f
> (let ([tmp (path->string (find-system-path 'temp-dir))]) (sequence-length (in-glob (string-append tmp "/*")))) 0
> (let ([tmp (path->string (find-system-path 'temp-dir))]) (sequence-length (in-glob (string-append tmp "/*") #:with-dotfiles? #t))) 0
The matches returned by either globbing function should be exactly the same as those returned by the Unix glob file \. -name pattern. Please submit an issue if you find a counterexample.
procedure
(glob-match? pattern path) → boolean
pattern : string path : path-string
(member path (glob pattern))
2 Typed API
(require glob/typed) | package: glob |
3 Globbing 101
Globs are path strings that may contain the following special characters.
"*" is a wildcard. It means "match anything". For example, (glob "*.rkt") will match all files in the current directory with a .rkt file extension.
"?" is an option. It means "the previous character might not be there". For example, (glob "*.rktd?") will match all .rkt and all .rktd files in the current directory.
Square braces "[]" are for branching on single characters. The pattern "[abc]" means "match ‘a’, or match ‘b’, or match ‘c’". For example, (glob "*.[co]") will match all .c and all .o files in the current directory.
4 Credits
Inspired by the Python glob library.