В первом примере ваша оболочка сначала развернет файл *.c чтобы он соответствовал всем файлам в текущем каталоге, оканчивающимся на .c .
Итак, если в вашем каталоге есть one.c , zwei.c и tres.c , ваша оболочка расширит это до
find . -name one.c zwei.c tres.c
и find , вероятно, запутается, потому что вы передаете пару дополнительных аргументов после -name one.c - zwei.c и tres.c не считаются частью того, что вы ищете с -name .
Во втором примере вы передаете буквенную строку *.c в опцию -name команды find . Это то, что find знает, как иметь дело - и, вероятно, то, что вы ищете.
Альтернативный способ сделать то же самое было бы с помощью обратной косой черты:
find . -name \*.c
(Заметим также , что ваши примеры нужен аргумент , чтобы сказать , где find , чтобы начать поиск. Это часто просто . указать текущий каталог.)