既に中身のある memo.txt に touch memo.txt を実行すると?
正答
- 中身が空になり、サイズ 0 のファイルになる
- 更新日時が現在時刻になり、中身は変わらない
- 既に存在するというエラーになる
- memo.txt のコピーがもう 1 つ作られる
解説
touch の本来の役割はファイルのアクセス日時と更新日時を現在時刻に更新することで、中身には触れない。ファイルが存在しない場合に限り、空のファイルを新規作成する。そのため「空ファイルを作るコマンド」として覚えられがちだが、既存ファイルに対して実行しても中身が消えることは無い。中身を空にするのは > memo.txt のようなリダイレクトで、touch とは別物である。
参考: www.gnu.org
この問題を含む Linux・シェル のテストを制限時間つきで解く
Linux・シェルクイズへ