The *.c
pola 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 *.c
pola (secara rekursif) dan grep
mencari Anda di dalamnya. Inilah cara untuk melakukan itu:
find . -name "*.c" -print0 | xargs --null grep -l search-pattern
Ini digunakan xargs
untuk menambahkan hasil pencarian oleh find
.
Atau, gunakan -exec
opsi untuk menemukan, misalnya:
find . -name "*.c" -exec grep -l search-pattern "{}" \;
Juga, saya tidak yakin apakah Anda benar-benar menginginkan -l
opsi 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=GLOB
pilihannya. Dalam kombinasi dengan opsi rekursif ini sangat kuat dan tidak memerlukanfind
. Bagus!