touch - update access, modification, and/or change times of file
touch [-amc] [-r ref_file | -t time] file_name ...
touch time_str file_name ...
touch 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 -r and -t options are mutually exclusive.
The following options are available:
-a 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 -m is also specified.
-m 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 -a is also specified.
-c Silently prevent touch from creating the file if it did
not previously exist. Do not write any diagnostic
messages concerning this condition.
Use the corresponding time of ref_file instead of the
-t 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).
Hewlett-Packard Company - 1 - HP-UX Release 11i: November 2000
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 follows: (taken into account the local time
If YY is: CC becomes:
If the resulting time value precedes the Epoch
(00:00:00 January 1, 1970 Greenwich Mean Time), touch
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 TZ
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
The syntax shown by the second SYNOPSIS line is recognized when
neither the -r option, the -t 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 -t 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.
touch succeeds only when invoked by the owner of the file if any of
the following are true:
+ A time is specified,
+ Only the access time of the file is being updated, or
+ Only the modification time of the file is being updated.
Hewlett-Packard Company - 2 - HP-UX Release 11i: November 2000
In addition, touch succeeds when invoked by a user with write
permission on the file if both of the following are true:
+ No time is specified, and
+ Both the access time and modification time of the file are
TZ If the time is specified via the -t option, TZ is used to
interpret the time for the specified time zone.
LC_MESSAGES determines the language in which messages are displayed.
If LC_MESSAGES is not specified in the environment or is set to the
empty string, the value of LANG is used as a default for each
unspecified or empty variable. If LANG 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,
touch behaves as if all internationalization variables are set to "C".
International Code Set Support
Single- and multi-byte character code sets are supported.
touch returns zero if all file_name arguments were successfully
touch returns non-zero and prints out a diagnostic message if an
invalid time or a time earlier than the Epoch was specified with the
-t option, or if the -r and -t 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.
touch -t 8907140000 bastille
The following command does the same thing using the backward-
touch 0714000089 bastille
The following command sets the time of the two files named
"0714000089" and "bastille" to the current time, creating them if they
Hewlett-Packard Company - 3 - HP-UX Release 11i: November 2000
do not exist:
touch -- 0714000089 bastille
To create a zero-length file, use any of the following:
cat /dev/null >>>>file
cp /dev/null file
An attempt to touch a file owned by the super-user on a remote server
might fail, even if the invoking user has write permission on the
touch: SVID2, SVID3, XPG2, XPG3, XPG4, POSIX.2
Hewlett-Packard Company - 4 - HP-UX Release 11i: November 2000