В первом примере ваша оболочка сначала развернет файл *.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
, чтобы начать поиск. Это часто просто .
указать текущий каталог.)