1.03.3基礎
generate-reportの標準出力をreport.txtへ保存する。
report.txtが存在する場合は先に内容を切り詰めて置き換える。
適切なリダイレクトはどれか。
× 不正解
>はファイルを標準出力へ接続し、noclobber等の設定がなければ既存内容を切り詰めてから書き込む。
詳細解説
正しい
generate-report > report.txt>は標準出力の書込先を開き、既存通常ファイルを切り詰める。
正しい。>はreport.txtを出力用に開き、既存内容を0長へしてからgenerate-reportのstdoutを書き込む。
誤り
generate-report >> report.txt既存内容の末尾へ追記する。
誤り。>>では古いreportの後ろへ新しいreportが続き、置き換え要件を満たさない。
誤り
generate-report < report.txtreport.txtを標準入力として開く。
誤り。<はデータの流れが逆で、report.txtをgenerate-reportへ読ませる。
誤り
generate-report 2> report.txt標準エラーだけを書き込み、標準出力は端末側に残る。
誤り。2>はstderrだけを保存し、主結果であるstdoutをreport.txtへ入れない。
実際に確かめる
一時的な検証環境で実行できる例です。
tmp=$(mktemp); printf old >"$tmp"; printf 'new\n' >"$tmp"; cat "$tmp"; rm -f "$tmp"期待される結果
new理解のポイント
- fd 1はstdout
- >は上書き
- >>は追記
確認時の注意
- 確認環境: Bash 5.x / 一時ファイル
基礎のおさらい
ファイル記述子1
標準出力は既定で端末へ接続され、>がその接続をファイルへ差し替える。
切り詰め時期
シェルがコマンドを起動する前に出力ファイルを開くため、入力と同じファイルへの上書きに注意する。
問題IDKL-101-466
確認環境Bash 5.x / 一時ファイル
最終技術確認2026-08-13
誤り・権利侵害を報告