「この文字列を含むファイルってどこにあるの?」というときに使えるコマンドです。
ファイル内に含まれる文字列を検索するコマンド
コマンドの補足をしておきます。
find
ファイルやディレクトリを検索するコマンドです。
検索対象のディレクトリ
このディレクトリ配下を検索対象とします。.
を指定すると、カレントディレクトリ配下が検索対象となります。
-name 検索対象のファイル
検索対象のファイルを指定します。ちなみに、ワイルドカードも使えます。例えば、'*.txt'
とすると、.txt
ファイルのみを検索対象とします。
-type f
ファイルのみを検索対象とします。検索対象にディレクトリを含めたくない場合に使います。ディレクトリのみを対象とする場合は、-type d
とします。
xargs
コマンド1 | xargs コマンド2
のように使います。コマンド1の結果(標準出力)をコマンド2の引数として渡し、コマンド2を実行します。
今回のようにfind | xargs grep
とすると、find
で検索したファイルをgrep
に渡し、grep
でファイル内の特定の文字列を検索します。find
でファイルを絞ってからgrep
するので、大量のファイルの中から特定の文字列を検索することもできます。find -print0 | xargs -0 grep
とすることで、空白文字が入ったファイル(例. hoge foo bar.txt)も検索対象にできます。
grep
対象のファイル内に含まれている文字列を検索します。
まとめ
Linuxでファイル内に含まれる文字列を検索するコマンドでした。