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?
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?
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.
.*
will include the parent directory (because ..
matches) –
Schumann "func foobar("
in all *.go
files, including files in a hidden subdirectory? –
Ornery 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 * .[^.]*
sudo grep -r ANDROID_HOME * .[^.]*
what am i doing wrong here? –
Avoidance Perhaps you will prefer to combine "grep" with the "find" command for a complete solution like:
find . -exec grep -Hn search {} \;
This command will search inside hidden files or directories for string "search" and list any files with a coincidence with this output format:
File path:Line number:line with coincidence
./foo/bar:42:search line
./foo/.bar:42:search line
./.foo/bar:42:search line
./.foo/.bar:42:search line
You may want to use this approach, assuming you're searching the current directory (otherwise replace . with the desired directory):
find . -type f | xargs grep search
or if you just want to search at the top level (which is quicker to test if you're trying these out):
find . -type f -maxdepth 1 | xargs grep search
UPDATE: I modified the examples in response to Scott's comments. I also added "-type f".
~
is the user’s home directory. The question was not about the user’s home directory, so the answer should not mention ~
. (2) In a find
command, -name '*'
is a no-op (i.e., it serves no purpose). –
Lytta All the other answers are better. This one might be easy to remember:
find . -type f | xargs grep search
It finds only files (including hidden) and greps each file.
To search within ONLY all hidden files and directories from your current location:
find . -name ".*" -exec grep -rs search {} \;
ONLY all hidden files:
find . -name ".*" -type f -exec grep -s search {} \;
ONLY all hidden directories:
find . -name ".*" -type d -exec grep -rs search {} \;
In addition to Tyler's suggestion, Here is the command to grep all files and folders recursively including hidden files
find . -name "*.*" -exec grep -li 'search' {} \;
-name "*" -type f
instead, if you only want to search inside files. The original suggestion will miss any files that do not have a type extension. This change will still recurse into hidden directories, but additionally skip running grep against directory objects. –
Underclothes To find only within a certain folder you can use:
ls -al | grep " \."
It is a very simple command to list and pipe to grep.
To search hidden files from the current folder non-recursively
find . -maxdepth 1 -name '.*' -type f -exec grep -ls 'search text' {} \;
To search hidden files from the current folder recursively
find . -name '.*' -type f -exec grep -ls 'search text' {} \;
You can also search for specific types of hidden files like so for hidden directory files:
grep -r --include=*.directory "search-string"
This may work better than some of the other options. The other options that worked can be too slow.
--include=*.directory
is supposed to do - it's not like all my directories end in .directory
? –
Nereidanereids .git
, or including hidden directories in general –
Nereidanereids © 2022 - 2024 — McMap. All rights reserved.