[grep] 特定のディレクトリを除外して再帰検索する

作成日: 2026年10月09日

grep で特定のディレクトリを除外して再帰検索するには、-r と --exclude-dir オプションを使用します。

例えば、logs/archive を除外して ERROR を検索する場合は下記のように実行します。

mkdir -p logs/archive
printf 'ERROR current\n' > logs/app.log
printf 'ERROR old\n' > logs/archive/old.log
grep -r --exclude-dir=archive 'ERROR' logs/

実行結果は下記のとおりです。

logs/app.log:ERROR current
  • -r: 指定したディレクトリ配下を再帰的に検索します。
  • --exclude-dir=archive: archive という名前のディレクトリとその配下を検索対象から除外します。どの階層にある archive ディレクトリも対象です。

ファイル名で除外する場合は、--exclude='*.log' のように --exclude を使用します。

参考

Shell command grep