*.c
Модель оцінюється вашої оболонкою. Це стосується поточного каталогу, як і ви ls *.c
.
Я думаю, що замість цього ви хочете знайти всі файли, що відповідають *.c
шаблону (рекурсивно) та grep
шукати вас у ньому. Ось як це зробити:
find . -name "*.c" -print0 | xargs --null grep -l search-pattern
Він використовує xargs
для додавання результатів пошуку find
.
Крім того, скористайтеся -exec
опцією для пошуку, наприклад:
find . -name "*.c" -exec grep -l search-pattern "{}" \;
Крім того, я не впевнений, чи дійсно ви бажаєте цього -l
варіанту grep
. Він зупиниться на першому матчі:
-l, --files-with-matches
Suppress normal output; instead print the name of each
input file from which output would normally have been
printed. The scanning will stop on the first match.
(-l is specified by POSIX.)
--include=GLOB
варіанту. У поєднанні з рекурсивним варіантом це дуже потужно і не вимагаєfind
. Приємно!