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.

      touch [-A [-][[hh]mm]SS] [-acfhm] [-r file] [-t [[CC]YY]MMDDhhmm[.SS]] file ...

     -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:

$ touch sample.txt

Then open the file:

$ open sample.txt

or in a subfolder:

$ touch "some folder/sample.txt"

Create a file sample.txt dated as 1958-12-31@14:30:

$ touch -t 195812311430 sample.txt

Create a file sample.txt dated as 2050-12-31@09:30:

$ touch -t 205012310930 sample.txt

Using brace expansion, create/datestamp 10 files called project1, project2 etc:

$ touch project{1,2,3,4,5,6,7,8,9,10}

Create/datestamp 100 files called file1, file2 etc:

for i in $(seq 1 100); do echo -n "file${i} "; touch file${i} 2>&1; done

“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.
mkdir - Create new folder(s).
rm - Delete files and folders.
which - Show full path of commands.

Copyright © 1999-2023
Some rights reserved