The time used can be specified by -t time, by the corresponding time fields of the file referenced by -r ref_file, or by the date_time operand. If none of these are specified, touch uses the current time (the value returned by the time(2) system call).
If neither the -a nor -m options are specified, touch updates both the modification and access times.
[[CC]YY]MMDDhhmm[.SS]
where each two digits represents the following:
- MM
- The month of the year [01-12].
- DD
- The day of the month [01-31].
- hh
- The hour of the day [00-23].
- mm
- The minute of the hour [00-59].
- CC
- The first two digits of the year.
- YY
- The second two digits of the year.
- SS
- The second of the minute [00-61].
Both CC and YY are optional. If neither is given, the current year will be assumed. If YY is specified, but CC is not, CC will be derived as follows:
If YY is: CC becomes: 69-99 19 00-38 20 39-68 ERROR The resulting time will be affected by the value of the TZ environment variable. If the resulting time value precedes the Epoch, touch will exit immediately with an error status. The range of valid times is the Epoch to January 18, 2038.
The range for SS is [00-61] rather than [00-59] because of leap seconds. If SS is 60 or 61, and the resulting time, as affected by the TZ environment variable, does not refer to a leap second, the resulting time will be one or two seconds after a time where SS is 59. If SS is not given, it is assumed to be 0.
MMDDhhmm[YY]
where each two digits represent the following:
- MM
- The month of the year [01-12].
- DD
- The day of the month [01-31].
- hh
- The hour of the day [00-23].
- mm
- The minute of the hour [00-59].
- YY
- The second two digits of the year.
YY is optional. If it is omitted, the current year will be assumed. If YY is specified, the year will be derived as follows:
YY Corresponding Year
69-99 1969-1999 00-38 2000-2038 39-68 ERROR If no -f option is specified, no -t option is specified, at least two operands are specified, and the first operand is an eight- or ten-digit decimal integer, the first operand will be assumed to be a date_time operand; otherwise, the first operand will be assumed to be a file operand.
Users familiar with the BSD environment will find that the -f option is accepted, but ignored. The -f option is unnecessary because touch will succeed for all files owned by the user regardless of the permissions on the files.