Shell globs: Difference between revisions

From Helpful
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 8: Line 8:
: {{inlinecode|*}} meaning ''any'' amount of characters of anything  
: {{inlinecode|*}} meaning ''any'' amount of characters of anything  
:: ...anything except the directory separateor, {{inlinecode|/}} {{(or presumably {{inlinecode|\}} if imitated in windows)}}
:: ...anything except the directory separateor, {{inlinecode|/}} {{(or presumably {{inlinecode|\}} if imitated in windows)}}
: [chars] meaning any one of the characters in this set
: {{inlinecode|[chars]}} meaning any one of the characters in this set
:: can also be used to match a literal ? or *
:: can also be used to match a literal ? or *
: [!chars] meaning anything other than the characters in this set
: {{inlinecode|[!chars]}} meaning anything other than the characters in this set
:: I've seen [^chars] manage the same, though this isn't ''quite'' standard [https://pubs.opengroup.org/onlinepubs/007904975/utilities/xcu_chap02.html#tag_02_13_01]
:: I've seen [^chars] manage the same, though this isn't ''quite'' standard [https://pubs.opengroup.org/onlinepubs/007904975/utilities/xcu_chap02.html#tag_02_13_01]






see also {{search|fnmatch()}}, which is a "does a single name match this glob"
See also {{search|fnmatch()}}, which is a "does a single name match this glob"


whereas glob() both walks your filesystem and returns ''all'' matching filenames
whereas glob() both walks your filesystem and returns ''all'' matching filenames

Revision as of 15:01, 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


...very simple ones, usually only:

? 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]


See also fnmatch(), which is a "does a single name match this glob"

whereas glob() both walks your filesystem and returns all matching filenames

apparently fnmatch() is used in the glob() implementation


Compare with regular expressions, which are more powerful (but still single-string) ways of expressing patterns.