Você pode fazer qualquer um dos
grep pattern_search .
# faz um grep normal no diretório atual
grep pattern_search *
# usa um grep normal em todos os arquivos globbed do diretório atual
grep -R pattern_search .
# usa uma pesquisa recursiva no diretório atual
grep -H pattern_search *
# imprime o nome do arquivo quando os arquivos são mais de um. ‘-H’
Outras opções, como (do manual do gnu):
--directories=action
If an input file is a directory, use action to process it. By default,
action is ‘read’, which means that directories are read just as if they
were ordinary files (some operating systems and file systems disallow
this, and will cause grep to print error messages for every directory
or silently skip them). If action is ‘skip’, directories are silently
skipped. If action is ‘recurse’, grep reads all files under each
directory, recursively; this is equivalent to the ‘-r’ option.
--exclude=glob
Skip files whose base name matches glob (using wildcard matching). A
file-name glob can use ‘*’, ‘?’, and ‘[’...‘]’ as wildcards, and \ to
quote a wildcard or backslash character literally.
--exclude-from=file
Skip files whose base name matches any of the file-name globs read from
file (using wildcard matching as described under ‘--exclude’).
--exclude-dir=dir
Exclude directories matching the pattern dir from recursive directory
searches.
-I
Process a binary file as if it did not contain matching data; this is
equivalent to the ‘--binary-files=without-match’ option.
--include=glob
Search only files whose base name matches glob (using wildcard matching
as described under ‘--exclude’).
-r
-R
--recursive
For each directory mentioned on the command line, read and process all
files in that directory, recursively. This is the same as the
--directories=recurse option.
--with-filename
Print the file name for each match. This is the default when there is
more than one file to search.