A cheat sheet for minimatch.
*matches any string, not including than path separator**matches any string, including path separators?matches single character other than path separator
| Pattern | Matches | Does not match |
|---|---|---|
xxx.* |
xxx.yyy, xxx.y.z |
abcxxx.yyy, xxx.y/z |
xxx/*/yyy |
xxx/abc/yyy |
xxx/yyy, xxx/abc/def/yyy, xxx/.abc/yyy |
xxx/**/yyy |
xxx/abc/yyy, xxx/yyy, xxx/abc/def/yyy |
xxx/.abc/yyy |
xxx/**yyy |
xxx/yyy |
xxx/abc/yyy, xxx/abc/def/yyy, xxx/.abc/yyy |
x?y |
xAy |
xy, xABy, x/y |
{foo,bar}matches "foo" and "bar"{1..3}matches "1", "2" and "3"
| Pattern | Matches | Does not match |
|---|---|---|
{foo,bar} |
foo, bar |
baz |
{x,y/*}/z |
x/z, y/a/z |
y/z |
foo{1..3} |
foo1, foo2, foo3 |
foo, foo0 |
!-prefixed patterns invert match
| Pattern | Matches | Does not match |
|---|---|---|
!abc |
a, xyz |
abc |
#-prefixed patterns are treated as comments and match nothing\#to escape
| Pattern | Matches | Does not match |
|---|---|---|
#abc |
abc, #abc |
|
\#abc |
#abc |
abc |
+(pattern)matches one or more repetition of pattern (like/(pattern)+/)*(pattern)matches zero or more repetition of pattern (like/(pattern)*/)?(pattern)matches zero or one repetition of pattern (like/(pattern)?/)@(pattern)matches pattern (like/(pattern)/)!(pattern)matches anything except the pattern (like/(?!pattern)/)- pattern can be joined by
|(like/(foo|bar)/)
| Pattern | Matches | Does not match |
|---|---|---|
a+(xy) |
axy, axyxy |
a |
a*(xy) |
a, axy, axyxy |
|
a@(xy) |
axy |
a, axyxy |
a!(xy) |
ax |
axy, axyz |
a+(x|y*z) |
axx, ayzxyzxx, axyAAAz |
axy, a |