Go to main content
マニュアルページ セク ション 1: ユー ザーコマンド

印刷ビューの終了

更新: 2016年12月6日
 
 

touch(1)

名前

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

touch には、次のオプションがサポートされています。

–a

file のアクセス日時だけを変更します。–m オプションも同時に指定された場合を除き、 更新日時は変更しません。

–c

file が示す名前のファイルが存在しない場合、そのファイルを作成しません。また、この状態についての診断メッセージを出力しません。

–d date_time

現在の日時の代わりに date_time を使用します。オプション引数には次の形式の文字列を指定してください。


YYYY-MM-DDThh:
mm:SS[.frac][
tz]

または

YYYY-MM-
DDThh:mm:SS[,
frac][tz]

各情報の意味は次のとおりです。

  • YYYY には、西暦年を表す 4 桁の 10 進数を指定する必要があります。

  • MMDDhhmm、および SS は、–t time と同様です

  • T には文字 T または 1 つのスペース文字を指定します。

  • [.frac] および [,frac] には、空あるいはそれぞれピリオド (.) またはコンマ (,) のあとに 1 桁以上の 10 進数を続けて、小数点以下の秒を指定します

  • [tz] は、ローカルの日時を示す空にするか、UTC を示す文字 Z にします。[tz] を空にすると、結果として得られる日時の値は環境変数 TZ の値の影響を受けます。

–m

file の更新日時だけを変更します。–a オプションも同時に指定しなければ、アクセス日時は更新しません。

–r ref_file

現在の日時の代わりに、ref_file に指定されたファイルの日時を使用します。

–t time

設定する日時として、現在の日時の代わりに time が示す値を使用します。time は、次の形式の 10 進数です。

[[CC]YY]
MMDDhhmm[.SS]

各 2 桁の値は次のような意味を持ちます。

MM

月 [01-12]

DD

日 [01-31]

hh

時 [00-23]

mm

分 [00-59]

CC

西暦年の上 2 桁

YY

西暦年の下 2 桁

SS

秒 [00-61]

CCYY はともにオプションです。両方とも省略すると、現在の年と見なされます。YY を指定して CC を省略すると、CC は次に示す値と見なされます。

YY の値
CC のデフォルト
69-99
19
00-38
20
39-68
エラー

結果として得られる日時の値は、環境変数 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

settime ユーティリティーには、次のオプションがサポートされています。

–f ref_file

現在の日時の代わりに、ref_file に指定されたファイルの日時を使用します。

オペランド

touch および settime には、 次のオペランドがサポートされています。

file

日時を変更するファイルのパス名

time_spec

設定する日時として、現在の日時の代わりに time_spec が示す値を使用します。このオペランドは、次の形式の 10 進数です。

MMDDhhmm[YY]

各 2 桁の値は次のような意味を持ちます。

MM

月 [01-12]

DD

日 [01-31]

hh

時 [00-23]

mm

分 [00-59]

YY

西暦年の下 2 桁

YY はオプションです。これを省略すると、現在の年と見なされます。YY を指定すると、 年は次に示す値と見なされます。

YY
対応する年
69-99
1969-1999
00-38
2000-2038
39-68
エラー

–d–r、または –t オプションを省略し、少なくとも 2 つのオペランドを指定し、そのうちの先頭のオペランドの値が 8 または 10 桁の 10 進数である場合、その先頭オペランドは time_spec であると見なされます。それ以外の場合には、先頭オペランドは file であると見なされます。

使用法

ファイルが 2G バイト (231 バイト) 以上ある場合の touch の動作については、largefile(5) を参照してください。

環境変数

touch の実行に影響を与える次の環境変数についての詳細は、environ(5) を参照してください。LANG、LC_ALL、LANG、LC_ALL、LC_CTYPE、LC_MESSAGES、および NLSPATH。

TZ

time または date_time オプション引数や time_spec オペランドに適用するタイムゾーンを指定します。

終了ステータス

次の終了ステータスが返されます。

0

touch の実行が正常終了し、要求されたすべての変更が行われた。

>0

エラーが発生した。touch は、日時の変更を実施できなかったファイルの数を返す。

属性

属性についての詳細は、マニュアルページの attributes(5) を参照してください。

属性タイプ
属性値
使用条件
system/core-os
CSI
有効
インタフェースの安定性
確実
標準
standards(5) を参照してください。

関連項目

futimens(2), stat(2), attributes(5), environ(5), largefile(5), standards(5)

BSD 環境に精通しているユーザーであれば、–f オプションが touch に受け入れられたのに f オプションが無視されることに気づきます。ファイル上のアクセス権にかかわりなく、touch は ユーザーが所有するすべてのファイルに対して成功するので、–f オプションは不要です。