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 as follows:
Refer to the standards(5) reference page for more information
about industry standards and associated tags.
Changes only the access time. Suppresses the creation of
the file. [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(). 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
The paired decimal numbers in the preceding syntax
line represent the following: The first two digits
of the year (the century) The second two digits of
the year (00-99) The month of the year (01-12) The
day of the month (01-31) The hour of the day
(00-23) The minute of the hour (00-59) 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 follows:
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 variable. 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
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 MMDDhhmm[YY]
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
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 format 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: Successful completion.
[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)
To update the access and modification times of a file,
enter: touch program.c
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. To avoid creating a new file,
enter: touch -c program.c 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
touch command is often used in this way to alter
the results of the make command. To explicitly set
the access and modification times, enter: touch -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 default format.)
To touch a file with a numeric file name,
include its full pathname or precede it with not
mistaken for the time argument. For example, to
touch the file 123.abc enter: touch -c ./123.abc
ENVIRONMENT VARIABLES [Toc] [Back]
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 multibyte
characters in arguments). Determines the locale for the
format and contents of diagnostic messages 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 LC_MESSAGES. Determines the time
zone to be used for interpreting the time specification.
Functions: creat(2), utime(2)
[ Back ]