Shell globs: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
mNo edit summary |
||
Line 23: | Line 23: | ||
:: (probably nothing related to the filesystem unless you do it yourself) | :: (probably nothing related to the filesystem unless you do it yourself) | ||
* {{search|C glob|glob()}} is likely to | * {{search|C glob|glob()}} is likely to read directory entries from your filesystem and returns ''all'' matching filenames | ||
:: apparently fnmatch() is ''used'' in the glob() implementation | :: apparently fnmatch() is ''used'' in the glob() implementation |
Revision as of 15:05, 28 November 2023
Globs, is associated with certain kinds of 'match this pattern'.
- also called shell globs, because they are mainly seen in command lines
Compare with regular expressions, which are more powerful (but still single-string) ways of expressing patterns.
Shell globs match fairly simple patterns. you can only use:
- ? meaning one character of anything, and
- * meaning any amount of characters of anything
- ...anything except the directory separateor, / {{(or presumably \ if imitated in windows)}}
- [chars] meaning any one of the characters in this set
- can also be used to match a literal ? or *
- [!chars] meaning anything other than the characters in this set
- I've seen [^chars] manage the same, though this isn't quite standard [1]
If you have both a fnmatch and glob function:
- fnmatch() is a "matches a single given string with this pattern"
- (probably nothing related to the filesystem unless you do it yourself)
- glob() is likely to read directory entries from your filesystem and returns all matching filenames
- apparently fnmatch() is used in the glob() implementation