touch, settime - ファイルのアクセス日時および更新日時の変更
touch [-acm] [-r ref_file | -t time | -d date_time] file...
touch [-acm] [time_spec] file...
settime [-f ref_file] [time_spec] file...
touch ユーティリティーは、各ファイルのアクセス日時または更新日時を設定します。指定した file が存在しない場合には、file が作成されます。
新たに設定する日時は、–t time、–d date_time、–r ref_file に指定したファイルの時間フィールド、または time_spec オペランドによって指定できます。これらのオプションを 1 つも指定しない場合、touch は現在の日時を使用します。
–a オプションと –m オプションの両方が省略された場合、touch は更新日時とアクセス日時の両方を更新します。
ファイルへの書き込み権を持つが、そのファイルの所有者ではなく、スーパーユーザーでもないユーザーは、ファイルの更新日時とアクセス日時を現在の日時にだけ変更できます。touch で特定の日時に設定しようとするとエラーになります。
settime ユーティリティーは、touch –c [time_spec] file と同等です。
touch および settime には、次のオプションがサポートされています。
touch には、次のオプションがサポートされています。
file のアクセス日時だけを変更します。–m オプションも同時に指定された場合を除き、 更新日時は変更しません。
file が示す名前のファイルが存在しない場合、そのファイルを作成しません。また、この状態についての診断メッセージを出力しません。
現在の日時の代わりに date_time を使用します。オプション引数には次の形式の文字列を指定してください。
YYYY-MM-DDThh: mm:SS[.frac][ tz]
または
YYYY-MM- DDThh:mm:SS[, frac][tz]
各情報の意味は次のとおりです。
YYYY には、西暦年を表す 4 桁の 10 進数を指定する必要があります。
MM、DD、hh、mm、および SS は、–t time と同様です
T には文字 T または 1 つのスペース文字を指定します。
[.frac] および [,frac] には、空あるいはそれぞれピリオド (.) またはコンマ (,) のあとに 1 桁以上の 10 進数を続けて、小数点以下の秒を指定します
[tz] は、ローカルの日時を示す空にするか、UTC を示す文字 Z にします。[tz] を空にすると、結果として得られる日時の値は環境変数 TZ の値の影響を受けます。
file の更新日時だけを変更します。–a オプションも同時に指定しなければ、アクセス日時は更新しません。
現在の日時の代わりに、ref_file に指定されたファイルの日時を使用します。
設定する日時として、現在の日時の代わりに time が示す値を使用します。time は、次の形式の 10 進数です。
[[CC]YY] MMDDhhmm[.SS]
各 2 桁の値は次のような意味を持ちます。
月 [01-12]
日 [01-31]
時 [00-23]
分 [00-59]
西暦年の上 2 桁
西暦年の下 2 桁
秒 [00-61]
CC と YY はともにオプションです。両方とも省略すると、現在の年と見なされます。YY を指定して CC を省略すると、CC は次に示す値と見なされます。
|
結果として得られる日時の値は、環境変数 TZ の値の影響を受けます。許される日時の値の範囲は、 1970 年 1 月 1 日 0 時 0 分 0 秒 (グリニッジ標準時) 以後から 2038 年 1 月 18 日までです。
SS の範囲は、 [00-59] ではなく [00-61] です。これはうるう秒を考慮しているためです。SS が 60 または 61、TZ により加工されたあとの時間の値がうるう秒を表していない場合、結果の時間値は SS を 59 とした時間の 1 秒後または 2 秒後となります。SS を省略すると 0 と見なされます。
settime ユーティリティーには、次のオプションがサポートされています。
現在の日時の代わりに、ref_file に指定されたファイルの日時を使用します。
touch および settime には、 次のオペランドがサポートされています。
日時を変更するファイルのパス名
設定する日時として、現在の日時の代わりに time_spec が示す値を使用します。このオペランドは、次の形式の 10 進数です。
MMDDhhmm[YY]
各 2 桁の値は次のような意味を持ちます。
月 [01-12]
日 [01-31]
時 [00-23]
分 [00-59]
西暦年の下 2 桁
YY はオプションです。これを省略すると、現在の年と見なされます。YY を指定すると、 年は次に示す値と見なされます。
|
–d、–r、または –t オプションを省略し、少なくとも 2 つのオペランドを指定し、そのうちの先頭のオペランドの値が 8 または 10 桁の 10 進数である場合、その先頭オペランドは time_spec であると見なされます。それ以外の場合には、先頭オペランドは file であると見なされます。
touch の実行に影響を与える次の環境変数についての詳細は、environ(7) を参照してください。LANG、LC_ALL、LANG、LC_ALL、LC_CTYPE、LC_MESSAGES、および NLSPATH。
time または date_time オプション引数や time_spec オペランドに適用するタイムゾーンを指定します。
次の終了ステータスが返されます。
touch の実行が正常終了し、要求されたすべての変更が行われた。
エラーが発生しました。touch は、日時の変更を実施できなかったファイルの数を返す。
属性についての詳細は、マニュアルページの attributes(7) を参照してください。
|
futimens(2), stat(2), attributes(7), environ(7), standards(7)
BSD 環境に精通しているユーザーであれば、–f オプションが touch に受け入れられたのに f オプションが無視されることに気づきます。ファイル上のアクセス権にかかわりなく、touch は ユーザーが所有するすべてのファイルに対して成功するので、–f オプションは不要です。