I know wildcards are expanded by the shell before running a command and they are a feature of the shell.
Also wildcards work with those commands that can accept many arguments.
find . -name *.rb if we have more than one file in the current directory
find will give us an error because find cannot accept multiple arguments and the ways to solve this are:
find . -name "*.rb" find . -name '*.rb' find . -name \*.rb
We escape the asterisk and prevent expansion by the shell but wildcards are a feature of the shell; when we escape the asterisk shell does not know about its meaning, and it should find a file named
*.rb, so how is the asterisk being expanded in this case?