普通に / からgrepで全ファイル検索しようとすると、/sysや/procまでたどるので困る。
なので、同一ファイルシステム内だけで検索したい
(findなら -xdevが、cpなら -x がある)
find / -xdev -type f -print0 | xargs -0 grep -I -H "hogehoge"
find | オプション |
---|---|
-xdev | ファイルシステムを跨がない |
-print0 | 空白区切りでなく \0 区切りで出力する*1 |
xargs | オプション |
-0 | 空白区切りでなく \0 区切りで入力する |
grep | オプション |
-I | バイナリファイルは無視 |
-H | 出力結果にファイル名を常に出す |
何十年もみんな求めてる機能だし そろそろ実装されてもいい頃合いなんだけど、なかなか実装されないな
*1:ファイル名にスペースを使うアホが居ても困らないように