Этот вопрос является продолжением https://stackoverflow.com/questions/7136899/how-does-grep-work
Похоже, что shell
выполняет расширение *.*
Для всех применимых / доступных файлов и предоставляет это для таких утилит, как grep
.
Зачем shell
это делать? Почему бы не оставить расширение пути к самой утилите?