I want to search for a string of text in all files in a directory (and not its subdirectories; I know the
-r option does that, but that is not what I want).
grep "string" /path/to/dir
is supposed to be able to do this, I've read, but it gives me the error:
grep: dir: Is a directory
Next, I tried running
grepon multiple files.
grep "string" .bashrc .bash_aliasesworks perfectly.
grep "string" .bash*works as intended too.
grep "string" *gives me the errors:
grep: data: Is a directory grep: Desktop: Is a directory grep: Documents: Is a directory grep: Downloads: Is a directory ...
Only the errors are printed, I don't get the matching lines. I tried using the
-s option, but to no avail.
So, my questions:
Why am I not being able to use
grepon a directory, as in (1), when I should be able to? I've seen that done in plenty examples on the Internet.
Edit: When I say "using grep on a directory", I mean "search in all the files in that directory excluding its subdirectories". I believe that this is what grep does when you pass a directory to it in place of a file. Am I incorrect?
Please give me an explanation on the workings of
grepthat would explain the behavior of commands in (2).
Edit: Let me be more specific. Why does using wildcards to specify multiple files to search in for work with
.bash*and not with
How can I search all the files in a directory (and not its subdirectories) using