utte

touch 空のファイルを作る、またはファイルの更新日時を変更する

touch [オプション] ファイル...

試してみる

主なオプション

-aアクセス日時だけを変更する
-m更新日時だけを変更する
-cファイルが存在しないときは作らない
-d 日時現在ではなく、指定した日時にする
-t [[CC]YY]MMDDhhmm[.ss]日時を数字の形式で指定する
-r ファイル指定したファイルと同じ日時にする

解説

2つの使い道

touch は、もともとファイルの時刻を変更するコマンドです。存在しないファイルを指定したときに空のファイルが作られるため、空のファイルを手早く作る目的でもよく使われます。

ファイルが持つ3つの時刻

ファイルには、最後に読んだ時刻(アクセス時刻、atime)、内容を最後に変更した時刻(更新時刻、mtime)、属性を変更した時刻(ctime)があります。ls -l で表示されるのは更新時刻です。touch は標準で、アクセス時刻と更新時刻の両方を現在時刻にします。-a ならアクセス時刻だけ、-m なら更新時刻だけです。ctime は touch では任意の値にできません。

時刻の指定

-d は「2024-04-01 12:00」のような読みやすい書き方ができます。-t は 202404011200 のように、年月日時分を数字で並べます。-r は別のファイルの時刻に合わせたいときに使います。

find との組み合わせ

find -newer や -mtime は更新時刻で判定するので、touch で時刻を調整して動作を試すこともできます。

関連するコマンド

LinuC 101の出題範囲