手册页部分 1: 用户命令

退出打印视图

更新时间: 2014 年 7 月
 
 

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 操作数尚未存在,则会创建该操作数。

使用的时间可由 –t time–d date_time–r ref_file 引用的文件的相应时间字段或 time_spec 操作数指定。如果这些均未指定,touch 将使用当前时间。

如果 –a–m 选项均未指定,touch 将更新修改时间和访问时间。

如果用户对某个文件具有写入访问权限,但不是该文件的所有者或超级用户,则只能将该文件的修改时间和访问时间更改为当前时间。尝试使用 touch 设置特定时间会导致错误。

settime 实用程序等效于 touch –c [time_spec] file

选项

touchsettime 实用程序支持以下选项:

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 是至少四个十进制数字,表示年份

  • MMDDhhmmSS–t time 一样

  • T 是字母 T 或单个 SPACE 字符

  • [.frac] 和 [,frac] 可以为空,也可以分别是句点 (.) 或逗号 (,),后跟一个或多个十进制数字,指定小数形式的秒

  • [tz] 可以为空,表示本地时间,也可以是字母 Z,表示 UTC。如果 [tz] 为空,则得到的时间受 TZ 环境变量值的影响

–m

更改 file 的修改时间。除非也指定了 –a,否则不会更改访问时间。

–r ref_file

使用 ref_file 指定的文件的相应时间而非当前时间。

–t time

使用指定的 time 而非当前时间。time 是以下格式的十进制数字:

[[CC]YY]
MMDDhhmm[.SS]

其中每个两位数字表示以下内容:

MM

年中某月 [01-12]。

DD

月中某日 [01-31]。

hh

日中某时 [00-23]。

mm

时中某分 [00-59]。

CC

年份的前两位数字。

YY

年份的后两位数字。

SS

分中某秒 [00-61]。

CCYY 均为可选内容。如果均未指定,则假定使用当前年份。如果指定了 YY 但未指定 CC,将按如下方式推导 CC

YY 假定值
CC 推导值
69-99
19
00-38
20
39-68
ERROR

得到的时间受 TZ 环境变量值的影响。有效时间范围是自新纪元起到 2038 年 1 月 18 日。

SS 范围是 [00-61] 而非 [00-59],因为存在闰秒现象。如果 SS 为 60 或 61,则得到的时间(受 TZ 环境变量的影响)并不是指闰秒,得到的时间是 SS 为 59 后的一秒或两秒。如果未指定 SS,则假定为 0。

settime

settime 实用程序支持以下选项:

–f ref_file

使用 ref_file 指定的文件的相应时间而非当前时间。

操作数

touchsettime 实用程序支持以下操作数:

file

要修改其时间的文件的路径名。

time_spec

使用指定的 time_spec 而非当前时间。该操作数是以下格式的十进制数字:

MMDDhhmm[YY]

其中每个两位数字表示以下内容:

MM

年中某月 [01-12]。

DD

月中某日 [01-31]。

hh

日中某时 [00-23]。

mm

时中某分 [00-59]。

YY

年份的后两位数字。

YY 是可选内容。如果将其省略,则假定使用当前年份。如果指定了 YY,将按如下方式推导年份:

YY
对应年份
69-99
1969-1999
00-38
2000-2038
39-68
ERROR

如果未指定 –d–r–t 选项,指定了至少两个操作数而且第一个操作数是八位或十位十进制整数,则假定第一个操作数为 time_spec 操作数。否则,假定第一个操作数为 file 操作数。

用法

有关 touch 遇到大于或等于 2 GB(231 字节)文件时行为的说明,请参见 largefile(5)

环境变量

有关影响 touch 执行的环境变量 LANG、LC_ALL、LC_CTYPE、LANG、LC_CTYPE、LC_MESSAGES 和 NLSPATH 的说明,请参见 environ(5)

TZ

确定用于解释 timedate_time 选项参数或者 time_spec 操作数的时区。

退出状态

将返回以下退出值:

0

touch 实用程序已成功执行,请求的所有更改都已完成。

>0

出现错误。touch 实用程序返回了无法成功修改其时间的文件的数目。

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/core-os
CSI
Enabled(已启用)
接口稳定性
Committed(已确定)
标准
请参见 standards(5)

另请参见

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

附注

熟悉 BSD 环境的用户发现,使用 touch 实用程序时,将接受但会忽略 –f 选项。无需使用 –f 选项,因为无论用户对文件有何种权限,touch 都能成功处理其拥有的所有文件。