GNU Core Utilities/touch
touch
コマンドは、ファイルのタイムスタンプ(最終アクセス時刻および最終修正時刻)を変更するためのユーティリティです。Version 7 AT&T UNIX に登場し、ファイルの作成や、既存ファイルのタイムスタンプを更新するのに広く利用されています。
基本的な使い方
編集touch [オプション] ファイル...
主なオプション
編集主なオプション オプション 説明 -a
最終アクセス時刻のみ変更 -m
最終修正時刻のみ変更 -t TIME
指定した日時にタイムスタンプを変更(例: touch -t 202502031230.00 file.txt
)-c, --no-create
ファイルが存在しない場合に新規作成しない -r FILE
他のファイルのタイムスタンプをコピー -d, --date=STRING
指定した文字列の日付・時刻でタイムスタンプを変更
例
編集新規ファイルの作成
編集touch newfile.txt
newfile.txt
が存在しない場合、新しい空のファイルが作成され、存在する場合はタイムスタンプが現在の日時に更新されます。
ファイルの最終アクセス時刻を変更
編集touch -a file.txt
file.txt
の最終アクセス時刻を現在の日時に更新します。
ファイルの最終修正時刻を変更
編集touch -m file.txt
file.txt
の最終修正時刻を現在の日時に更新します。
指定した日時でタイムスタンプを変更
編集touch -t 202502031230.00 file.txt
file.txt
のタイムスタンプを指定した日時(2025年2月3日12時30分)に変更します。
他のファイルのタイムスタンプをコピー
編集touch -r reference.txt target.txt
reference.txt
のタイムスタンプを target.txt
にコピーします。
FreeBSD 版との違い
編集FreeBSD でも touch
コマンドは提供されていますが、いくつか違いがあります。
主な違い:
編集- FreeBSD 版の
touch
コマンドでは、タイムスタンプが空のファイルに対しても更新される点はGNU版と同様ですが、-c
オプションに関しては、ファイルが存在しない場合にエラーを出力することがあります。 - GNU 版の
touch
では、新規ファイルを作成する際にデフォルトでファイルのアクセスと修正時刻が同時に更新されますが、FreeBSD 版では-a
や-m
オプションを指定しないと、その挙動に若干の違いが見られる場合があります。
詳しくは、それぞれの環境で
を確認してください。
man touch