私たちは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
。