103.4基礎
check-serviceの標準出力をhistory.logの末尾へ追加する。
history.logにある以前の記録は保持する。
適切なコマンドはどれか。
× 不正解
>>は標準出力を既存ファイルの末尾へ追記する。ファイルがなければ通常は新規作成する。
詳細解説
誤り
check-service > history.log以前の内容を切り詰めて上書きする。
既存ログを切り詰める。
正しい
check-service >> history.log>>はファイルを追記用に開き、標準出力を末尾へ書く。
正解。標準出力をhistory.logの末尾へ加える。
誤り
check-service 2>> history.log標準エラーを追記し、標準出力は保存しない。
保存するストリームが標準エラーになる。
誤り
history.log >> check-service左辺をコマンドとして実行しようとする誤った順序である。
ファイルをコマンド位置へ置く誤った構文である。
実際に確かめる
一時的な検証環境で実行できる例です。
printf 'first
' > /tmp/kp-history.log; printf 'second
' >> /tmp/kp-history.log; cat /tmp/kp-history.log; rm /tmp/kp-history.log期待される結果
first
second理解のポイント
- >>は追記
- 既存内容を保持する
- 対象がなければ作成する
確認時の注意
- 確認環境: Bash 5.2
基礎のおさらい
追記の作成
対象が存在しない場合、権限があれば>>でも新しいファイルが作られる。
複数プロセス
複数プロセスからの大きな書込みは行単位で完全に分離される保証がない。
問題IDKP-103-063
確認環境Bash 5.2
最終技術確認2026-08-12
誤り・権利侵害を報告