*.cDesen kabuk tarafından değerlendirilir. Bu, kullandığınız gibi geçerli dizine uygulanır ls *.c.
Bunun yerine istediğinizi *.cdesenle eşleşen tüm dosyaları bulmak (yinelemeli) ve içinde grepsizin için arama yapmak olduğunu düşünüyorum. İşte bunu yapmanın bir yolu:
find . -name "*.c" -print0 | xargs --null grep -l search-pattern
Bu kullanır xargsarama sonuçlarını eklemek find.
Alternatif olarak, -execbulmak için seçeneği kullanın, örneğin:
find . -name "*.c" -exec grep -l search-pattern "{}" \;
Ayrıca, -lseçeneği gerçekten isteyip istemediğinizden emin değilim grep. İlk maçta duracak:
-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=GLOBSeçeneği bilmiyordum . Özyinelemeli seçenekle birlikte bu çok güçlüdür ve gerektirmezfind. Güzel!