.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 * .[^.]*
おそらく、次のような完全なソリューションを得るには、「grep」と「find」コマンドを組み合わせることをお勧めします。
find . -exec grep -Hn search {} \;
このコマンドは、隠しファイルまたはディレクトリ内で文字列「search」を検索し、次の出力形式と一致するファイルを一覧表示します。
ファイルパス:行番号:一致する行
./foo/bar:42:search line
./foo/.bar:42:search line
./.foo/bar:42:search line
./.foo/.bar:42:search line
現在のディレクトリを検索していると仮定して、このアプローチを使用することをお勧めします(そうでない場合は、。を目的のディレクトリに置き換えます)。
find . -type f | xargs grep search
または、トップレベルで検索したいだけの場合(これらを試しているかどうかをテストする方が簡単です):
find . -type f -maxdepth 1 | xargs grep search
更新:スコットのコメントに応じて例を変更しました。「-typef」も追加しました。
一致を防ぎ.
、..
隠しファイルではない場合は、次の例のようにgrep
使用できます。ls -A
ls -A | grep "^\."
^\.
最初の文字は.
-A
orオプションは結果を--almost-all
除外し、隠しファイルと隠しディレクトリのみが一致するようにします。.
..
他のすべての答えはより良いです。これは覚えやすいかもしれません:
find . -type f | xargs grep search
ファイル(非表示を含む)のみを検索し、各ファイルを取得します。
現在の場所からすべての隠しファイルとディレクトリのみを検索するには:
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にパイプするのは非常に簡単なコマンドです。
タイラーの提案に加えて、隠しファイルを含むすべてのファイルとフォルダーを再帰的にgrepするコマンドは次のとおりです。
find . -name "*.*" -exec grep -li 'search' {} \;
隠しディレクトリファイルのように、特定の種類の隠しファイルを検索することもできます。
grep -r --include=*.directory "search-string"
これは、他のいくつかのオプションよりもうまく機能する可能性があります。機能した他のオプションは遅すぎる可能性があります。