greprecursion – 不一致

我正在从根目录recursion地寻找一个特定的string(主要是.c文件)。

当我使用这个,我几乎立即得到一个列表。

grep -rl "F_capture" . 

但是,如果我尝试通过search.c文件来加快速度:

 grep -r --include=*.c "F_capture" . 

我最终得到了这样一个recursion的目录警告:

 grep: warning: ./sys/block/fd0/device/bus/drivers/i8042/i8042/serio1/input:event1/subsystem/event3/device/bus/drivers/pcnet32/0000:00:03.0/subsystem: recursive directory loop 

当我尝试使用-s参数来压制警告时,我没有得到警告,但是我也没有得到任何回报 – 好像它将永远不会落地。

 grep -rsl --include="*.c" "F_capture" . 

所以我想我的问题是,为什么我使用的第一个grep立即返回一些东西,而其他types的目标是特定types的文件似乎挂起。 我认为有针对性的search会更快。

你可以试试这个:

 find . -type f -name "*.c" -print|xargs grep -l "F_capture" 

尝试以下命令:

 grep "F_capture" `find -type f -name "*.c"`