質問: linuxで特定のテキストを含むすべてのファイルを見つける方法は? 私は自分のlinuxシステム全体をスキャンして、特定の文字列を含むすべてのファイルをスキャンする方法を見つけようとしています。わかりやすくするために、ファイル名ではなくファイル内のテキストを探しています。私がこれを行う方法を調べていたとき、私は二度この解決策に出会いました:find / -type f -exec grep -h 'text-to-find-here' {} \; しかし、うまくいきません。システム内のすべての単一ファイルを表示するようです。これは適切な方法に近いですか。そうでなければ、どうすればいいの?ファイル内のテキスト文字列を見つけるこの機能は、私が行っているプログラミングプロジェクトにとって非常に便利です。
回答: find /path -type f -exec grep -l "string" {} \; コメントからの説明findは、与えられたパスのサブディレクトリにあるファイルやディレクトリやリンクのような他のオブジェクトを見つけることができるコマンドです。ファイル名が満たすべきマスクを指定しないと、すべてのディレクトリオブジェクトが列挙されます。-type f specifies that it should proceed only files, not directories etc. -exec grep specifies that for every found file, it should run grep command, passing its filename as an argument to it, by replacing {} with the filename