103.1基礎
対話的Bashのhistory出力で、削除対象の履歴番号が42と分かった。
履歴一覧からその項目だけを削除する。
適切なコマンドはどれか。
× 不正解
history -d OFFSETは指定した位置の履歴項目を削除する。全履歴を消す-cとは対象範囲が異なる。
詳細解説
誤り
history 42末尾42件を表示し、項目を削除しない。
数値だけでは表示件数となり、削除しない。
正しい
history -d 42-dは指定した履歴位置の項目を削除する。
正解。履歴位置42の項目だけを現在の一覧から削除する。
誤り
history -c 42-cは履歴一覧全体を消去し、42だけを対象にしない。
-cは対象を1件へ限定せず、履歴一覧全体を消去する。
誤り
history -a 42-aは新しい履歴行を履歴ファイルへ追記する。
-aは履歴ファイルへの追記であり削除ではない。
実際に確かめる
一時的な検証環境で実行できる例です。
対話的Bashでhistory -d 42を実行後、historyで確認する期待される結果
元の履歴番号42の項目が一覧からなくなる理解のポイント
- history -d
- history -cとの違い
- 履歴位置
確認時の注意
- 確認環境: Bash 5.2(対話モード)
- 履歴ファイルへの最終反映はHISTFILEと保存設定に依存する。
基礎のおさらい
履歴位置
historyの表示番号を確認してから-dへ渡す。削除後は後続位置が変化し得る。
永続化
メモリ上で削除しても、終了時の履歴保存設定によってファイル側の扱いが変わる。
問題IDKP-103-029
確認環境Bash 5.2(対話モード)
最終技術確認2026-08-12
誤り・権利侵害を報告