touch(1) General Commands Manual touch(1)
touch - update access, modification, and/or change times of file
ref_file time] file_name...
updates the access, modification, and last-change times of each argument. The file name is created if it does not exist. If no time is
specified (see date(1)) the current time is used.
The and options are mutually exclusive.
The following options are available:
Change the access time of
file_name to time, or to the current time if time is not specified. Do not change the modification time unless is
Change the modification time of
file_name to time, or to the current time if time is not specified. Do not change the access time unless is also
from creating the file if it did not previously exist. Do not write any diagnostic messages concerning this condi-
Use the corresponding time of
ref_file instead of the current time.
Use the specified
time instead of the current time. The option argument is a decimal number of the form:
where each two digits represents the following:
CC The first two digits of the year.
YY The second two digits of the year.
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).
SS The second of the minute (00-61).
If neither CC nor YY is given, the current year is assumed. If YY is specified, but CC is not, CC is derived as fol-
lows: (taken into account the local time factor)
If YY is: CC becomes:
If the resulting time value precedes the Epoch (00:00:00 January 1, 1970 Greenwich Mean Time), exits immediately with
an error status.
The range for SS is 00 through 61 rather than 00 through 59 to accommodate leap seconds. If SS is 60 or 61, and the
resulting time, as affected by the environment variable, does not refer to a leap second, the resulting time is one
second after a time where SS is 59. If SS is not given a value, it is assumed to be 0.
The syntax shown by the second line is recognized when neither the option, the option, nor the option delimiter is specified, and the first
operand consists of all decimal digits. This operand is interpreted as the time argument instead of as a file name. However, in this
case, time_str is assumed to be of the form:
This is for backward compatibility. The form given above is recommended for future portability. The option delimiter can be used before
the first file_name if there is a possibility that file_name consists of all digits, in order to ensure that the first syntax is used.
succeeds when invoked by the of the file if any of the following are true:
o A time is specified.
o Only the access time of the file is being updated.
o Only the modification time of the file is being updated.
In addition, succeeds when invoked by a user with write permission on the file if of the following are true:
o No time is specified.
o the access time and modification time of the file are being updated.
If the time is specified via the
option, is used to interpret the time for the specified time zone.
determines the language in which messages are displayed.
If is not specified in the environment or is set to the empty string, the value of is used as a default for each unspecified or empty vari-
able. If is not specified or is set to the empty string, a default of "C" (see lang(5)) is used instead of
If any internationalization variable contains an invalid setting, behaves as if all internationalization variables are set to "C". See
International Code Set Support
Single- and multibyte character code sets are supported.
returns the following values:
All file_name arguments were successfully changed.
Prints out a diagnostic message
if an invalid time or a time earlier than the Epoch was specified with the option, or if the and options were both specified,
or if one or more of the file_name arguments could not be accessed.
The following command sets the modification and access times of the file named "bastille" to midnight, July 14, 1989, creating the file if
it does not already exist.
The following command does the same thing using the backward-compatible syntax:
The following command sets the time of the two files named "0714000089" and "bastille" to the current time, creating them if they do not
To create a zero-length file, use any of the following:
An attempt to touch a file owned by the superuser on a remote server can fail, even if the invoking user has write permission on the file.