Change file timestamps. Sets the modification and access times of files to the current time of day. If the file doesn't exist, it is created with default permissions.
Syntax touch [-A [-][[hh]mm]SS] [-acfhm] [-r file] [-t [[CC]YY]MMDDhhmm[.SS]] file ... Options -A Adjust the access and modification time stamps for the file by the specified value. This flag is intended for use in modifying files with incorrectly set time stamps. The argument is of the form '[-][[hh]mm]SS' where each pair of letters represents the following: - Make the adjustment negative: the new time stamp is set to be before the old one. hh The number of hours, from 00 to 99. mm The number of minutes, from 00 to 59. SS The number of seconds, from 00 to 59. The -A flag implies the -c flag: if any file specified does not exist, it will be silently ignored. -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. -f Attempt to force the update, even if the file permissions do not currently permit it. -h If the file is a symbolic link, change the times of the link itself rather than the file that the link points to. Note that -h implies -c and thus will not create any new files. -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 Copy the access and modification times from a specified file instead of the current time of day. -t Change the access and modification times to the specified time. The argument 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 61. 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 obsolescent form of touch, where a time format is specified as the first argument, is supported.
When no -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 39 to 99, the year is set to 1939 to 1999, otherwise, the year is set in the 21st century.
Exits 0 on success, and >0 if an error occurs.
Create/datestamp a file called sample.txt:
Create a file sample.txt dated as 1958-12-31@14:30:
touch -t 195812311430 sample.txt
Using brace expansion, create/datestamp 10 files called project1, project2 etc:
“If you play it safe you stagnate is this league.
Maybe we'll bust, but if we hit it, we'll hit it big” ~ Jimmy Johnson, coach of the Miami Dolphins
Related macOS commands:
chgrp - Change group ownership.
chmod - Change access permissions.
chown - Change file owner and group.
date - Display or change the date.
which - Show full path of commands.