I am searching through a Git repository and would like to include the .git
folder.
grep
does not include this folder if I run
grep -r search *
What would be a grep command to include this folder?
Show Hidden Files From the Command LineThe ls command lists the contents of the current directory. The –a switch lists all files – including hidden files.
To toggle show/hide hidden files or folders use the keyboard shortcut Ctrl + H . in Linux and Unix systems, the files starting with . (a dot) are hidden files. To see them with the ls command, add -a or -A at your ls.
The grep command searches through the file, looking for matches to the pattern specified. To use it type grep , then the pattern we're searching for and finally the name of the file (or files) we're searching in. The output is the three lines in the file that contain the letters 'not'.
Using the command line command dir /ah displays the files with the Hidden attribute.
Please refer to the solution at the end of this post as a better alternative to what you're doing.
You can explicitly include hidden files (a directory is also a file).
grep -r search * .[^.]*
The *
will match all files except hidden ones and .[^.]*
will match only hidden files without ..
. However this will fail if there are either no non-hidden files or no hidden files in a given directory. You could of course explicitly add .git
instead of .*
.
However, if you simply want to search in a given directory, do it like this:
grep -r search .
The .
will match the current path, which will include both non-hidden and hidden files.
I just ran into this problem, and based on @bitmask's answer, here is my simple modification to avoid the problem pointed out by @sehe:
grep -r search_string * .[^.]*
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With