1.02.2標準
cache.flagが存在する場合だけタイムスタンプを現在時刻へ更新する。
存在しない場合は新規ファイルを作成しない。
適切なコマンドはどれか。
× 不正解
touch -c(--no-create)は存在する対象の時刻だけを更新し、存在しない名前を作成しない。
詳細解説
誤り
touch cache.flag存在しない場合は空のcache.flagを作成する。
誤り。通常のtouchは既存なら時刻を更新するが、未存在なら空ファイルを新規作成する。
正しい
touch -c cache.flag時刻を更新するが、対象がなければ新規作成しない。
正しい。-cは--no-createであり、既存のcache.flagだけを更新するという条件を直接表す。
誤り
touch -a cache.flagアクセス時刻だけを対象にするが、存在しないファイルの作成は抑止しない。
誤り。-aは更新する時刻の種類をアクセス時刻へ限定するが、未存在時の作成抑止にはならない。
誤り
touch -r cache.flagcache.flagを参照ファイルとして扱う指定で、更新対象が欠けている。
誤り。-rの直後は参照元のファイルであり、この形では更新対象そのものを指定できていない。
実際に確かめる
一時的な検証環境で実行できる例です。
tmp=$(mktemp -d); touch -c "$tmp/missing"; test ! -e "$tmp/missing" && echo not-created; rmdir "$tmp"期待される結果
not-created理解のポイント
- -cは作成抑止
- touch単独は未存在なら作成
- -aはアクセス時刻
確認時の注意
- 確認環境: GNU coreutils 9.x / 一時ディレクトリ
基礎のおさらい
複数の時刻
ファイルはアクセス時刻や内容更新時刻などを持ち、touchのオプションで対象を選べる。
存在確認との違い
-cは未存在をエラーにするのではなく、作成せず処理を続ける。
問題IDKL-101-391
確認環境GNU coreutils 9.x / 一時ディレクトリ
最終技術確認2026-08-13
誤り・権利侵害を報告