touch — change file timestamps

Examples (TL;DR)


touch [OPTION]... FILE...


Update the access and modification times of each FILE to the current time.

A FILE argument that does not exist is created empty, unless -c or -h is supplied.

A FILE argument string of - is handled specially and causes touch to change the times of the file associated with standard output.

Mandatory arguments to long options are mandatory for short options too.


change only the access time

-c, --no-create

do not create any files

-d, --date=STRING

parse STRING and use it instead of current time



-h, --no-dereference

affect each symbolic link instead of any referenced file (useful only on systems that can change the timestamps of a symlink)


change only the modification time

-r, --reference=FILE

use this file's times instead of current time


use [[CC]YY]MMDDhhmm[.ss] instead of current time


change the specified time: WORD is access, atime, or use: equivalent to -a WORD is modify or mtime: equivalent to -m


display this help and exit


output version information and exit

Note that the -d and -t options accept different time-date formats.

Date String

The --date=STRING is a mostly free format human readable date string such as "Sun, 29 Feb 2004 16:21:42 -0800" or "2004-02-29 16:21:42" or even "next Thursday".  A date string may contain items indicating calendar date, time of day, time zone, day of week, relative time, relative date, and numbers.  An empty string indicates the beginning of the day.  The date string format is more complex than is easily documented here but is fully described in the info documentation.


Written by Paul Rubin, Arnold Robbins, Jim Kingdon, David MacKenzie, and Randy Smith.

Reporting Bugs

GNU coreutils online help: <>
Report any translation bugs to <>

See Also

Full documentation <>
or available locally via: info '(coreutils) touch invocation'

Referenced By

cook(1), fetchmail(1), guestfish(1), guestfs(3), ksh93(1), last(1), perlfunc(1), qselect-torque(1), richaclex(7), ssh-copy-id(1), sshexport(1), systemd-update-done.service(8), utime(2), utimensat(2), virt-builder(1), virt-customize(1), virt-sysprep(1), vmtouch(8), xsane(1), znew(1).

October 2019 GNU coreutils 8.31