touch 命令

用途

更新文件的访问和修改时间。

语法

touch [ -a ] [ -c ] [ -m ] [ -f ] [ -r RefFile ] [ Time | -t Time | -d date_time] { File ... | Directory ...}
注意:上述语法仅适用于AIX®操作系统未启用UNIX03模式的情况。

触碰 [F] [- ref_file | -t time | -d 日期时间 ] 文件... | 目录

注: 仅当启用了 UNIX03 方式时,上述语法才适用。 要在 AIX 操作系统中启用 UNIX03 方式,必须将 XPG_SUS_ENV 环境变量的值设置为 ON

描述

touch 命令更新由 Directory 参数指定的每个目录下的由 File 参数指定的每个文件的访问和修改时间。 如果没有指定 Time 变量值,touch 命令就使用当前时间。 如果指定不存在的文件, touch 命令将创建该文件,除非指定 -c 标志。

touch 命令的返回码是时间没有被成功修改的文件数目(包括不存在的文件和没有创建的文件)。

即使在 touch 命令中未指定 -a-m 标志,它们也处于活动状态。

标志

描述
-a 更改由 File 变量指定的文件的访问时间。 不要更改修改时间,除非也指定了 -m 标志。
-c 如果文件不存在,那么不要进行创建。 没有写任何有关此条件的诊断消息。
-d 日期时间 使用指定的日期和时间,而不是当前时间。 date_time 变量以十进制格式 YYYY-MM-DDThh:mm: SS [.frac] [tz]YYYY-MM-DDThh:mm: SS [, frac] [tz]指定,其中:
YYYY
指定年份的四位数 (0000 到 9999)。
MM
指定一年的哪一月(从 01 至 12)。
DD
指定一月的哪一天(从 01 至 31)。
hh
指定一天中的哪一小时(从 00 至 23)。
mm
指定一小时的哪一分钟(从 00 至 59)。
SS
指定一分钟的哪一秒(从 00 至 59)。
指示时间标志符,可替换为单个空间。
[.frac]
指定小数秒。 它可以是空白或后跟一个或多个十进制数字的句点 (.)。
[, frac]
指定小数秒。 它是一个逗号 (,) ,后跟一个或多个十进制数字。
[tz]
如果 [tz] 参数的值为空,那么会将本地时区用于生成的时间。 如果 [tz] 参数的值是字符 Z ,那么将使用坐标时区 (UTC) 作为生成的时间。 如果 [tz] 参数的值为空,那么将使用 TimezoneInfo (TZ) 环境变量的值来标识生成的时间。 如果生成的时间早于戳记时间,那么 [tz] 参数的值特定于实现。 此外,如果无法将生成的时间表示为 File 参数指定的文件的时间戳记,那么 touch 命令将退出并返回错误状态。
-f 尝试强制 touch 运行,而不管文件的读和写许可权。
-M 更改 File 的修改时间。 不要更改访问时间,除非也指定了 -m 标志。
-r RefFile 使用由 RefFile 变量指定的文件的相应时间,而不用当前时间。
时间 MMDDhhmm[YY] 的格式指定新时间戳记的日期和时间,其中:
MM
指定一年的哪一月(从 01 至 12)。
DD
指定一月的哪一天(从 01 至 31)。
hh
指定一天中的哪一小时(从 00 至 23)。
mm
指定一小时的哪一分钟(从 00 至 59)。
YY
指定年份的后两位数字。 如果未指定 YY 变量,那么缺省值为当前年份(70 到 99 或 00 到 37)。

如果 YY 数字的值介于 70 和 99 之间,那么将采用 20 世纪。

如果 YY 数字的值介于 00 和 37 之间,那么将假设为 20 世纪。

-t 时间 使用指定时间而不是当前时间。 Time 变量以十进制形式 [[CC]YY]MMDDhhmm[.SS] 指定,其中:
CC
指定年份的前两位数字(19 到 21)。
YY
指定年份的后两位数字(00 到 99)。

如果 YY 数字的值介于 70 和 99 之间,那么将假设 CC 数字的值为 19。

如果 YY 数字的值介于 00 和 37 之间,那么将假设 CC 数字的值为 20。

对于 2038 之后的年份,请以 yyyy 格式指定年份。

MM
指定一年的哪一月(从 01 至 12)。
DD
指定一月的哪一天(从 01 至 31)。
hh
指定一天中的哪一小时(从 00 至 23)。
mm
指定一小时的哪一分钟(从 00 至 59)。
SS
指定一分钟的哪一秒(从 00 至 59)。
   
注意:
  1. touch 命令调用 utimenstat () 子例程来更改所触及文件的修改和访问时间。 当没有真正拥有该文件,即使对文件有写许可权,使用标志时也可能使 touch 命令失败。
  2. 如果在使用 touch 命令时接收到错误消息,请勿指定完整路径名 /usr/bin/touch

退出状态

本命令返回以下退出值:

描述
重大安全事件数量 命令成功执行。 所有请求的更改已完成。
> 0 发生错误。

安全性

hm

RBAC 用户注意: 此命令可以执行特权操作。 只有特权用户才能执行特权限定的操作。 有关授权和权限的更多信息,请参阅安全中的特权命令数据库。 有关该命令的权限和授权列表,请参阅 "lssecattr命令或 "getcmdattr子命令。

示例

  1. 要更新文件的访问和修改时间,请输入:
    touch program.c
    这将设置上次访问和修改时间program.c文件到当前日期和时间。 如果program.c文件不存在, touch 命令创建一个具有该名称的空文件。
  2. 为避免创建新文件,请输入:
    touch  -c program.c
  3. 要仅更新修改时间,请输入:
    touch  -m *.o
    这将更新以以下内容结尾的文件的上次修改时间 (而不是访问时间):.o当前目录中的扩展。 touch 命令经常以此方式使用,来改变 make 命令的结果。
  4. 要显式设置访问和修改时间,请输入:
    touch  -c  -t 02171425 program.c
    这会将访问和修改日期设置为 1 4: 25 (2:25 p.m)。 本年度的 2 月 17 日。
  5. 要使用另一个文件的时间戳记而不是当前时间,请输入:
    touch  -r file1 program.c
    这使得program.c文件与时间戳记相同file1中。
  6. 要使用当前时间以外的指定时间来触摸文件,请输入:
    touch  -t 198503030303.55 program.c
    这使得program.c文件时间戳记 3:03:55 a.m。 1985 年 3 月 3。

文件

描述
/usr/bin/touch 包含 touch 命令。