【回答】
grep はサブディレクトリまで検索することはできません。grep をサブディレクトリまで実行するには xargs コマンドを使用します。
find コマンドでサブディレクトリのファイル一覧を取得し、その後 xargs コマンドで grep に引数一覧を渡します。
find <検索するフォルダ> -name '<検索対応のファイル名>' | xargs grep <検索する文字列>
以下の例では /(ルートフォルダ) からすべての *.conf ファイルで "splash.xpm.gz" という文字が含まれているファイルを検索します。
# find / -name '*.conf' | xargs grep splash.xpm.gz
/boot/grub/grub.conf:splashimage=(hd0,0)/grub/splash.xpm.gz
/etc/grub.conf:splashimage=(hd0,0)/grub/splash.xpm.gz
結果として以下の2ファイルが検出されています。
/boot/grub/grub.conf
/etc/grub.conf
(注意)
grep -r でも再帰的に検索できますが、ファイル名の指定はできません。
grep -r splash.xpm.gz /
で/(ルートフォルダ) からすべてのファイルで "splash.xpm.gz" という文字が含まれているファイルを検索します。
(*)本ページは Redhat Enterprise Linux 6以後を想定しています。
最終更新日:2018/01/09
[Redhat Enterprise linux 6(EL) FAQ トップへ]
[FAQ CENTER トップ]