TOUCH(1)

NAME
touch - change file access and modification times

SYNOPSIS
touch [-acfhm] [-d human-datetime] [- -date human-datetime] [-r file] [- -reference file] [-t datetime] file ...

DESCRIPTION
The touch utility changes the access and modification times of files to the current time of day. If the file doesn't exist, it is created with default permissions.

The following options are available:

-a  Change the access time of the file. The modification time of the file is not changed unless the -m flag is also specified.

-c  Do not create the file if it does not exist. The touch utility does not treat this as an error. No error messages are displayed and the exit value is not affected.

-d human-datetime

- -date human-datetime
    Parse human-datetime using the human datetime parser parsedate(3).

-f  This flag has no effect; it is accepted for compatibility reasons.

-h  If file is a symbolic link, access and/or modification time of the link is changed. This option implies -c.

-m  Change the modification time of the file. The access time of the file is not changed unless the -a flag is also specified.

-r file

- -reference file
    Use the access and modifications times from file instead of the current time of day.

-t datetime
    Change the access and modification times to the specified time. The argument datetime should be in the form “[[CC]YY]MMDDhhmm[.SS]” where each pair of letters represents the following:

    CC  The first two digits of the year (the century).
    YY  The second two digits of the year. If “YY” is specified, but “CC” is not, a value for “YY” between 69 and 99 results in a “CC” value of 19. Otherwise, a “CC” value of 20 is used.
    MM  The month of the year, from 1 to 12.
    DD  The day of the month, from 1 to 31.
    hh  The hour of the day, from 0 to 23.
    mm  The minute of the hour, from 0 to 59.
    SS  The second of the minute, from 0 to 60 (permitting leap seconds). If SS is 60 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 zero.

    If the “CC” and “YY” letter pairs are not specified, the values default to the current year. If the “SS” letter pair is not specified, the value defaults to 0.

The -d, -r, and -t options are mutually exclusive. If more than one of these options is present, the last one is used.

ENVIRONMENT

TZ  The timezone to be used for interpreting the datetime argument of the -t option.

EXIT STATUS

COMPATIBILITY
The obsolescent form of touch, where a time format is specified as the first argument, is supported. When no -d, -r, or -t option is specified, there are at least two arguments, and the first argument is a string of digits either eight or ten characters in length, the first argument is interpreted as a time specification of the form “MMDDhhmm[YY]”.

The “MM”, “DD”, “hh” and “mm” letter pairs are treated as their counterparts specified to the -t option. If the “YY” letter pair is in the range 69 to 99, the year is set to 1969 to 1999, otherwise, the year is set in the 21st century.

SEE ALSO
utimes(2), parsedate(3)

STANDARDS
The touch utility is expected to be a superset of the p1003.2 specification.

HISTORY
A touch utility appeared in AT&T UNIX.

BUGS
A symbolic link can't be a reference file of access and/or modification time.