2012-04-29 45 views

答えて

85

この記事の末尾にある解決策を、あなたがやっていることの良い選択肢として参照してください。

明示的に隠しファイルを含めることもできます(ディレクトリもファイルです)。

grep -r search * .* 

*は、隠されたものを除くすべてのファイルにマッチしますし、.*は隠しファイルにマッチします。ただし、指定されたディレクトリに隠されていないファイルも隠されていないファイルもないと失敗します。もちろん、.*の代わりに.gitを明示的に追加することもできます。あなたは、単に、指定されたディレクトリ内で検索したい場合は

しかし、このようにそれを行う:

grep -r search . 

.は非隠された隠しファイルの両方が含まれます、現在のパスを、一致します。

+0

最初のアプローチは、私のために働きました。 2番目の方法(grep -r search。)では文字列が見つかりませんでした。 "-r"を省略し、最上位のディレクトリだけを検索しても同様の結果が得られました。私はGNU grep 2.6.3を使用しています。 – Alan

+0

@Alan:それは変です。私はこれを定期的に使用します。あなたは同じディレクトリでそれを試しましたか? – bitmask

+0

はい、私はしました。ちなみに、tcshとbashのどちらを使っても、結果は同じです。 Debian 5 64ビットシステムで、これは価値があります。 – Alan

2

おそらく、あなたは

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

のような完全なソリューションのためのコマンドこのコマンドは、「検索」の文字列を隠しファイルやディレクトリの中身を検索すると、偶然の一致で任意のファイルを一覧表示されます「見つける」と「はgrepを」組み合わせる好むでしょう

ファイルパス:行番号:行偶然の一致と

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

あなたはこのアプローチを使用することもできます。この出力形式と

find ~ -name '*' | xargs grep search 

またはあなただけのトップレベル(あなたがこれらをしようとしているかどうかをテストするために迅速である)で検索する場合:

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

他のすべての答えは優れています。この1つは覚えやすいかもしれません:

find . -type f | xargs grep search 

は(隠さ含む)のみのファイルを検索し、私はこの問題に遭遇した

3

各ファイルをgrepして、@ビットマスクの回答に基づいて、ここに私の簡単な変更であります問題を回避@seheによって指摘:

grep -r search_string * .[^.]* 
+0

私はこれは: 'sudo grep -r ANDROID_HOME *。[^。] *'ここで間違っていますか? – messerbill

+0

@messerbill検索はどこで実行していますか? – insaner

0

あなたの現在の場所からONLYすべての隠しファイルやディレクトリ内を検索するには:

find . -name ".*" -exec grep -rs search {} \; 

ONLYすべての隠しファイル:

find . -name ".*" -type f -exec grep -s search {} \; 

ONLYすべての隠しディレクトリ:(。検索-rのgrep * *)

find . -name ".*" -type d -exec grep -rs search {} \; 
関連する問題