pathname or filename expansion 1) is an expansion (code replacement at runtime) that replaces globbing wildcard by pathname.
The path name in this context is the last part in a path, it is therefore equivalent to the file name
The asterisk character matches every filename in a given directory.
Example: The examples have the following files in their current directory
foo.txt
bar.txt
Example 1
The following echo command
echo *
will expand to all files in the current directory and will be equivalent at runtime to the following command
echo foo.txt bar.txt
and will effectively list all files in the current directory
foo.txt bar.txt
Example 2 The following echo command
echo b*
will expand to all files that starts with a b in the current directory and will be equivalent at runtime to the following command
echo bar.txt
listing only the bar file
bar.txt
echo t?.sh # will list the file that start with t and have two characters
If there is no match, the expression is just echoed
The globstar parameters should be set to enable Glob - Globbing (Wildcard expression)
shopt -s globstar
ls **/
shopt -u globstar
ls **/
If followed by a /, two adjacent *s will match only directories and subdirectories.
braces globbing is supported on the last bash version
ls -l {b*,c*,*est*}
Not to confound with brace expansion that generates string.
More on globbing pathnames or
man 7 glob | col -b > glob.txt