The *.cpola dievaluasi oleh shell Anda. Ini berlaku untuk direktori saat ini, sama seperti yang Anda gunakan ls *.c.
Saya pikir yang Anda inginkan adalah menemukan semua file yang cocok dengan *.cpola (secara rekursif) dan grepmencari Anda di dalamnya. Inilah cara untuk melakukan itu:
find . -name "*.c" -print0 | xargs --null grep -l search-pattern
Ini digunakan xargsuntuk menambahkan hasil pencarian oleh find.
Atau, gunakan -execopsi untuk menemukan, misalnya:
find . -name "*.c" -exec grep -l search-pattern "{}" \;
Juga, saya tidak yakin apakah Anda benar-benar menginginkan -lopsi itu grep. Itu akan berhenti pada pertandingan pertama:
-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=GLOBpilihannya. Dalam kombinasi dengan opsi rekursif ini sangat kuat dan tidak memerlukanfind. Bagus!