我怎样才能grep隐藏的文件?

我正在通过一个Git仓库进行search,并希望包括.git文件夹。

如果我运行, grep不包括这个文件夹

 grep -r search * 

什么是一个grep命令来包含这个文件夹?

请参考本文末尾的解决scheme,作为您正在做的更好的select。

你可以明确包含隐藏的文件(一个目录也是一个文件)。

 grep -r search * .* 

*将匹配除隐藏文件以外的所有文件, .*将仅匹配隐藏文件。 但是,如果给定目录中没有非隐藏文件或没有隐藏文件,则这将失败。 你当然可以明确地添加.git而不是.*

但是,如果您只是想在给定的目录中进行search,请这样做:

 grep -r search . 

. 将匹配当前path,其中将包括非隐藏和隐藏的文件。

也许你会喜欢结合“grep”和“find”命令来获得完整的解决scheme

 find . -exec grep -Hn search {} \; 

该命令将在隐藏文件或目录中searchstring“search”,并列出与该输出格式一致的任何文件:

文件path:行号:符合的行

 ./foo/bar:42:search line ./foo/.bar:42:search line ./.foo/bar:42:search line ./.foo/.bar:42:search line 

我刚碰到这个问题,并基于@位掩码的答案,这里是我的简单修改,以避免@sehe指出的问题:

 grep -r search_string * .[^.]* 

你可能想要使用这种方法:

 find ~ -name '*' | xargs grep search 

或者如果你只是想在顶层search(这是更快的testing,如果你正在尝试这些):

 find ~ -maxdepth 1 -name '*' | xargs grep search 

所有其他答案都更好。 这个可能很容易记住:

 find . -type f | xargs grep search 

仅查找文件(包括隐藏)和grep每个文件