Gitリポジトリを検索していて、.git
フォルダーを含めたいと考えています。
grep
実行してもこのフォルダは含まれません
grep -r search *
このフォルダーを含めるためのgrepコマンドは何でしょうか?
Gitリポジトリを検索していて、.git
フォルダーを含めたいと考えています。
grep
実行してもこのフォルダは含まれません
grep -r search *
このフォルダーを含めるためのgrepコマンドは何でしょうか?
回答:
この投稿の最後にある解決策を参考にしてください。
隠しファイルを明示的に含めることができます(ディレクトリもファイルです)。
grep -r search * .*
*
隠されたものを除くすべてのファイルにマッチしますし、.*
唯一の隠しファイルにマッチします。ただし、特定のディレクトリに非表示でないファイルまたは非表示のファイルがない場合、これは失敗します。もちろん、の.git
代わりに明示的に追加することもでき.*
ます。
ただし、特定のディレクトリを単に検索する場合は、次のようにします。
grep -r search .
.
非隠され、隠されたファイルの両方が含まれます、現在のパスを、一致します。
.*
すると、親ディレクトリが含まれます(..
一致するため)
私はこの問題に遭遇しました、そして@bitmaskの答えに基づいて、@ seheによって指摘された問題を回避するための簡単な変更を次に示します。
grep -r search_string * .[^.]*
sudo grep -r ANDROID_HOME * .[^.]*
ここで何が問題になっていますか?
現在のディレクトリを検索している場合は、この方法を使用することもできます(そうでない場合は、。を目的のディレクトリに置き換えます)。
find . -type f | xargs grep search
または、最上位レベルで検索したいだけの場合(これらを試しているかどうかをテストする方が速い):
find . -type f -maxdepth 1 | xargs grep search
更新:私はスコットのコメントに応じて例を変更しました。「-type f」も追加しました。
~
はユーザーのホームディレクトリです。質問はユーザーのホームディレクトリに関するものではなかったため、回答にはを記載しないでください ~
。(2) find
コマンドで-name '*'
は、何もしません(つまり、何の目的も果たしません)。
現在の場所からすべての隠しファイルとディレクトリのみを検索するには:
find . -name ".*" -exec grep -rs search {} \;
すべての隠しファイルのみ:
find . -name ".*" -type f -exec grep -s search {} \;
すべての隠しディレクトリのみ:
find . -name ".*" -type d -exec grep -rs search {} \;
特定のフォルダ内のみを検索するには、次のように使用できます。
ls -al | grep " \."
これは、grepにリストしてパイプする非常に単純なコマンドです。
タイラーの提案に加えて、ここに隠しファイルを含むすべてのファイルとフォルダーを再帰的にグレップするコマンドがあります
find . -name "*.*" -exec grep -li 'search' {} \;
隠しディレクトリファイルのように、特定のタイプの隠しファイルを検索することもできます。
grep -r --include=*.directory "search-string"
これは他のオプションのいくつかよりもうまくいくかもしれません。機能した他のオプションは遅すぎる可能性があります。