The shell wildcards are resolved by the shell, and not by the command. This means filenames can be treated as options if they are starting with a -. In our previous example, we added a file called -lha into the folder. When we type ls *, the shell replaces the * by all matching files in the current directory, and therefore our command becomes ls file1 file2 file3 -lha. After the wildcard resolution, the shell executes the command with our options.