RHEL(Gnu / Linux)でファイル内の単語をスキャン/検索する正しい方法は何ですか?

RHEL(Gnu / Linux)でファイル内の単語をスキャン/検索する正しい方法は何ですか?

私たちはGnu / Linuxマシンで単語をスキャンしたいと思います。簡単なアプローチは次のとおりです。grep

grep -r "some_word" /var

ただし、ファイルシステム全体をスキャンする場合は、スキャン中にファイルgrep -r "some_word" /のみをスキャンすることはできません/proc(そのファイルは除外する必要があります)。もしそうなら、この目的のためにスキャンするのに役立つツールがあるかどうか疑問に思います。

私はgnuについて知っていますgrep。私たちには選択肢があります--exclude-dir。しかし、まだGnu / Linuxファイルシステムで単語を検索するより良い方法を知りたいです。

答え1

find / -path /sys -prune -o -path /proc -prune -o -type f -exec grep -r "some_word" {} \;

私はこれがあなたが望むものだと信じています

答え2

これらのオプションを使用している場合、findユーティリティは単一のファイルシステムに残ることがあります-xdev。これはコマンドです

find / -xdev -type f -exec grep -w -F 'word' {} +

...ルートファイルシステム内に残り、/sysまたはを入力しません/proc

grepルートファイルシステムは、単語を見つけるためにファイルパス名を一括渡しますword

他のマウントされたファイルシステムも検索するには、そのファイルシステムを最上位の検索パスとして一覧表示します。たとえば、/homeとが/tank別々にマウントされたパーティションであり、それを検索したい場合、

find / /home /tank -xdev -type f -exec grep -w -F 'word' {} +

この-xdev述部は標準であり、すべてではなくてもほとんどの実装で機能しますfind

関連情報