1.03.4標準
conf.d以下の通常ファイル内容からlistenを含む行を検索する。
サブディレクトリ内も対象にする。
適切なコマンドはどれか。
× 不正解
grep -rは指定ディレクトリ以下をたどり、各ファイルの内容へパターンを適用する。
詳細解説
誤り
grep -n 'listen' conf.d-nは行番号を付けるが、ディレクトリを再帰走査する指定ではない。
誤り。-nは表示形式の指定であり、conf.dをたどる能力を追加しない。
正しい
grep -r 'listen' conf.d-rがディレクトリ以下の内容検索を再帰的に行う。
正しい。-rがサブディレクトリへ降り、各ファイル内容からlistenを含む行を探す。
誤り
find conf.d -name listenファイル名がlistenの項目を探し、ファイル内容を検索しない。
誤り。find -nameはlistenというファイル名を探すため、設定本文のlistenディレクティブを見つけない。
誤り
grep 'listen' conf.d/*シェルの1階層分だけを展開し、さらに深い階層を網羅しない。
誤り。globは直下だけを列挙し、深いサブディレクトリの通常ファイルを網羅できない。
実際に確かめる
一時的な検証環境で実行できる例です。
tmp=$(mktemp -d); mkdir -p "$tmp/sub"; printf 'listen 80\n' >"$tmp/sub/web.conf"; grep -r 'listen' "$tmp"; rm -rf "$tmp"期待される結果
一時パス/sub/web.conf:listen 80理解のポイント
- -rは再帰検索
- grepは内容検索
- find -nameは名前検索
確認時の注意
- 確認環境: GNU grep 3.x / 一時ディレクトリ
- 実際の出力先頭にはmktempが作成した一時パスが含まれる。
基礎のおさらい
内容検索と名前検索
grepはテキスト内容、find -nameはディレクトリエントリの名前を主対象にする。
再帰検索
-rはディレクトリをたどるため、対象範囲やシンボリックリンクの扱いを意識して使う。
問題IDKL-101-493
確認環境GNU grep 3.x / 一時ディレクトリ
最終技術確認2026-08-13
誤り・権利侵害を報告