「/proc」、「/sys」などのディレクトリをスキップし、「find /」を使用してください。

「/proc」、「/sys」などのディレクトリをスキップし、「find /」を使用してください。

特に、検索の問題を引き起こす可能性があるディレクトリの中には、オペレーティングシステムがfind /実際にファイルではなくファイルを生成するディレクトリがあります。このディレクトリには/proc /sys /run

問題は、そのようなことをしているが、find / -exec grepこれらのシステムのいくつかをクロールすると、システムが混乱する可能性があることです。

それでは、findにディレクトリを一覧表示せずにスキップするように指示するにはどうすればよいですか?誰かがこのような新しいディレクトリを作成することを決めることができるからです。リストに依存するのではなく、ディレクトリをテストし、このテストに失敗したディレクトリを除外するように選択します。

ベストアンサー1

いいですね。除外されたファイルのリストに依存したくないので、少なすぎるディレクトリを除外するリスクはありません。

したがって、どのファイルを含めるかを説明しましょう。

これらの「実際のファイルではない」は、ほぼ常に別々のファイルシステムにあります。
これは「実際にはファイルシステムではありません」と似ており、ただ似ているようです。

私たちが言うことができるのは、それらが私たちの「本当の」ファイルシステムにないということです。 `/home'
にマウントされた2つのパーティションがあるとしましょう。/

optionsを使用すると、次のような既知の良い場所でのみ実行-xdevできます。find

find / /home -xdev -exec grep ...

いくつかの奇妙なファイルはまだ通常のファイルと混在する可能性があります(上記の「ほとんどすべて」を参照)。

問題が発生します。忘れたfifoファイルがあり、そのファイルに対してgrepを実行すると、grepはそのファイルを読み取ろうとし、永遠に待機します。

すべての危険なタイプを除外できますが、可能なファイルタイプを見ると、シンボリックリンクなど、-type実際に必要なタイプはあまりありません。入力された、およびの一部または全部を含める、または除外することにのみ注意してください。fdl
fdlbcpsD

find / /home -xdev -type f -exec grep ...

またはシンボリックリンクを含める場合:

find /home/me/dirWithSomeLinksToFiles -xdev \( -type f -or -type d \) -exec grep ...

おすすめ記事