[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 を使用します。
参考
- GNU grep - File and Directory Selection: https://www.gnu.org/software/grep/manual/html_node/File-and-Directory-Selection.html