touch - Updates file access and modification times
touch [-acfm] [-r reference_file | -t time] file...
The following older syntax is now maintained for backward compatibility,
but may be withdrawn in future issues:
touch [-acfm] [time] file...
Interfaces documented on this reference page conform to industry standards
Refer to the standards(5) reference page for more information about indus-
try standards and associated tags.
-a Changes only the access time.
-c Suppresses the creation of the file.
-f [Tru64 UNIX] Attempts to force the touch in spite of read and write
permissions on a file. The -f option is actually a dummy option; it is
not used by the touch code, but is recognized by getopt().
-m Changes only the modification time.
Uses the time of the file named by the pathname reference_file instead
of the current time. You cannot use -r and -t together.
Uses the specified time instead of the current time.
The time argument is a decimal number in the following form:
The paired decimal numbers in the preceding syntax line represent the
CC The first two digits of the year (the century)
YY The second two digits of the year (00-99)
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)
Both CC and YY are optional. If neither is specified, the current year
is assumed. If YY is specified, but CC is not, CC is derived as fol-
If YY is 69-99, CC is 19.
If YY is 00-68, CC is 20.
The resulting time is affected by the value of the TZ environment vari-
able. If the resulting time value precedes the Epoch, touch exits
immediately with an error status. The range of valid times past the
Epoch extends to at least midnight 1 January 2000 UCT.
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 is one or two seconds after a time where SS is 59. If SS is not
given a value, it is assumed to be 0 (zero).
If neither the -a option nor the -m options are specified, touch behaves as
if you have specified both options.
The file for which times should be modified, or which should be
created. If the file is a symbolic link, the link will be traversed and
filename resolution will continue.
In the obsolescent version, if both the -r and -t options are omitted,
and if the first file parameter is an eight or ten digit decimal
integer, it is interpreted as a time parameter.
The format for the time parameter in the obsolesent syntax is
The touch command updates the access and modification times of each file or
directory named to the one specified on the command line or to the current
time if you do not specify a time. You can specify the time with -t or by
the time of the reference file with the -r option. If you do not specify a
time, touch uses the current time. If you specify a file that does not
exist, touch creates a file with that name unless you request otherwise
with the -c option.
The LC_TIME environment variable, if defined, specifies the order of month
and day in the date specification and of hour and minute in the time
specification. Otherwise, these orders default to MMdd and hhmm. The for-
mat for the time argument is MMddhhmm[yy].
The obsolescent format for the time argument is MMddhhmm[YY].
The obsolescent version may be withdrawn from future versions of the XCU5.0
standards. The -r or -t options should be used.
The following exit values are returned:
0 Successful completion.
>>0 [Tru64 UNIX] The number of files whose times could not be successfully
modified (including files that did not exist and were not created).
When the -c option is specified, files are suppressed purposely, an error
does not occur and a message is not written to standard error. The exit
status returns zero (0) for success.
1. To update the access and modification times of a file, enter:
This sets the last access and last modification times of program.c to
the current date and time. If program.c does not exist, touch creates
an empty file with that name.
2. To avoid creating a new file, enter:
touch -c program.c
3. To update only the modification time, enter:
touch -m *.o
This updates only the last modification times of the files in the
current directory that end with .o. The touch command is often used
in this way to alter the results of the make command.
4. To explicitly set the access and modification times, enter:
touch -c 02171425 program.c
This sets the access and modification dates to 14:25 (2:25 p.m.)
February 17 of the current year. (This assumes that you are using the
5. To touch a file with a numeric file name, include its full pathname or
precede it with ./, so that the file name is not mistaken for the time
argument. For example, to touch the file 123.abc enter:
touch -c ./123.abc
The following environment variables affect the execution of touch:
Provides a default value for the internationalization variables that
are unset or null. If LANG is unset or null, the corresponding value
from the default locale is used. If any of the internationalization
variables contain an invalid setting, the utility behaves as if none of
the variables had been defined.
If set to a non-empty string value, overrides the values of all the
other internationalization variables.
Determines the locale for the interpretation of sequences of bytes of
text data as characters (for example, single-byte as opposed to multi-
byte characters in arguments).
Determines the locale for the format and contents of diagnostic mes-
sages written to standard error.
[Tru64 UNIX] This environment variable, if defined, specifies the
order of month and day in the date specification and of hour and minute
in the time specification. Otherwise, these orders default to MMdd and
hhmm. The format for the time argument is MMddhhmm[yy].
Determines the location of message catalogues for the processing of
TZ Determines the time zone to be used for interpreting the time specifi-
Functions: creat(2), utime(2)