How do I use Nant/Ant naming patterns?
ant, nant
Solution
The rules are:
- a single star (*) matches zero or more characters within a path name
- a double star (**) matches zero or more characters across directory levels
- a question mark (?) matches exactly one character within a path name
Another way to think about it is double star (**) matches slash (/) but single star (*) does not.
Let's say you have the files:
- bar.txt
- src/bar.c
- src/baz.c
- src/test/bartest.c
Then the patterns:
- `*.c` matches nothing (there are no .c files in the current directory)
- `src/*.c` matches 2 and 3
- `*/*.c` matches 2 and 3 (because * only matches one level)
- `**/*.c` matches 2, 3, and 4 (because ** matches any number of levels)
- `bar.*` matches 1
- `**/bar.*` matches 1 and 2
- `**/bar*.*` matches 1, 2, and 4
- `src/ba?.c` matches 2 and 3
Problem
I have to admit that I always forgot the syntactical intracacies of the naming patterns for Nant (eg. those used in filesets). The double asterisk/single asterisk stuff seems to be very forgettable in my mind. Can someone provide a definitive guide to the naming patterns?