回答:
find / -type f -exec grep "string" {} +
これにより、大文字と小文字を区別しない検索が実行されますが、検索は遅くなりますが、より柔軟になります。
find / -type f -exec grep -i "string" {} +
多くの結果が得られるので、それをより少ないパイプにパイプしてから、とを使用fしbて、出力をページごとに前後にナビゲートできます。
find / -type f -exec grep -i "string" {} + | less
*.txt
ファイルを探していることがわかっている場合は、さらに絞り込むことができます。
find / -type f -name "*.txt" -exec grep -i "string" {} + | less
これはトリックを行う必要があり、はるかに簡単です:
grep -R "some string" /
-nを追加すると、必要な行番号が表示されます。
grep -Rn "some string" /
この場合、なぜ「cat」を使用するのですか?人々が理由なく「猫」を使用する方法はいつも奇妙です。ただやる:
find -type f / | xargs grep "string to find"
もちろん、ディスク全体のすべてのファイルの検索は非常に遅くなります。このような検索を頻繁に行う必要がある場合は、何らかのインデックスプログラムを使用した方がよいでしょう。たとえば、Beagleは非常に広範な検索エンジンであり、しばらく前から存在しています。その他のオプションは、KDEのStrigiまたはGoogleのデスクトップ検索です
少なくとも、「find」の代わりに「locate」を使用する必要があります。ファイル名のみをインデックスし、その内容はインデックスしませんが、それでも物事を高速化します。さらに、grepを使用する前に、ファイルタイプに基づいてフィルタリングする必要があります。たとえば、100MBのaviファイルなどでgrepを使用するのは時間の無駄です。
見つけたファイルを知るにはどうすればよいですか?
一致するファイルを印刷するには、「-H
」とともに「grep
」オプションを使用する必要があります。
また、
/
')よりもわずかに優れた推測を使用することをお勧めします。John
「」演算子の-exec
切り替えのスキームは、|
多くのファイルが検索されている場合に役立ちます
/
。また/
、通常のユーザーとして検索を開始すると、アクセス許可の問題のために大量のエラーメッセージが表示されることになります。