Linux and Unix touch command tutorial with examples
Tutorial on using touch, a UNIX and Linux command for changing file timestamps. Examples of creating an empty file, updating access and modification time, updating just access time, updating just modification time and setting timestamps in the past.
What is the touch command in UNIX? ¶
The touch
command is a command line utility to update timestamps on files.
UNIX and UNIX like operating systems store timestamp information for each file
or folder including access time, modify time and change time. It is possible to
modify timestamps using the touch
command either to update a timestamp to the
current time or to modify it to a date in the past.
How to create an empty file ¶
To create an empty file using the touch
command pass the name of the file to
be created to the touch command. This sets the access and modification time for
the file to the current time when running the command.
touch file.txt
ls -l
-rw-r--r-- 1 george users 0 Oct 14 20:55 file.txt
How to create multiple empty files ¶
To create multiple empty files pass more than one filename to be created to the
touch
command. This sets the access and modification time for each file
created to the current time when running the command.
touch file1.txt file2.txt file3.txt
-rw-r--r-- 1 george users 0 Oct 14 20:58 file1.txt
-rw-r--r-- 1 george users 0 Oct 14 20:58 file2.txt
-rw-r--r-- 1 george users 0 Oct 14 20:58 file3.txt
How to avoid creating a file if it does not exist ¶
By default the touch
command will create a file if it does not exist. To
prevent this behaviour pass the -c
option.
ls
file1.txt
touch -c nonexistentfile.txt
ls
file1.txt
How to update access and modification time ¶
To update the access and modification time of a file or files pass the name of
the file or files to the touch
command. This will update the access and
modification dates to the time the command was run.
ls -l favicon.ico
-rw-r--r-- 1 george users 12014 Sep 25 21:27 favicon.ico
ls -l --time=atime
-rw-r--r-- 1 george users 12014 Sep 25 21:27 favicon.ico
touch favicon.ico
ls -l
-rw-r--r-- 1 george users 12014 Oct 14 21:22 favicon.ico
ls -l --time=atime
-rw-r--r-- 1 george users 12014 Oct 14 21:22 favicon.ico
How to change only the access time ¶
To change the access time of a file pass the -a
option.
ls -l --time=atime
-rw-r--r-- 1 george users 0 Oct 14 20:58 file1.txt
touch -a file1.txt
ls -l --time=atime
-rw-r--r-- 1 george users 0 Oct 14 21:03 file1.txt
In this example the modified date remains the same.
ls -l
-rw-r--r-- 1 george users 0 Oct 14 20:58 file1.txt
How to change only the modification time ¶
To change the access time of a file pass the -m
option.
ls -l
-rw-r--r-- 1 george users 0 Oct 14 21:09 file1.txt
touch -a --time=mtime file1.txt
ls -l
-rw-r--r-- 1 george users 0 Oct 14 21:11 file1.txt
In this example the access time remains the same.
ls -l --time=atime
-rw-r--r-- 1 george users 0 Oct 14 21:09 file1.txt
How to apply timestamp attributes from one file to another ¶
To apply one files timestamps to another one pass the -r
option followed by
the source and target files. This takes the source file as a reference and
applies the timestamps to the target file.
ls -l
-rw-r--r-- 1 george users 0 Oct 14 21:19 file1.txt
-rw-r--r-- 1 george users 0 Oct 14 21:13 file2.txt
touch -r file2.txt file1.txt
ls -l
-rw-r--r-- 1 george users 0 Oct 14 21:13 file1.txt
-rw-r--r-- 1 george users 0 Oct 14 21:13 file2.txt
How to set a time that is not the current time ¶
To set a time that is not the current time pass the -t
option followed by a
time in the format [[CC]YY]MMDDhhmm[.ss]
. In the following example the file
access and modification dates are set to 25th January 1977.
ls -l
-rw-r--r-- 1 george users 0 Oct 14 21:13 file1.txt
ls -l
-rw-r--r-- 1 george users 0 Jan 25 1977 file1.txt
You can literally bend time with the touch
command.
Further reading ¶
Tags
Can you help make this article better? You can edit it here and send me a pull request.
See Also
-
Linux and Unix cp command tutorial with examples
Tutorial on using cp, a UNIX and Linux command for copying files and directories. Examples of copying a file, copying multiple files, copying a directory, taking a backup when copying and preserving file attributes when copying. -
Linux and Unix mv command tutorial with examples
Tutorial on using mv, a UNIX and Linux command to move or rename files. Examples of moving a file, moving multiple files, moving a directory, prompting before overwriting and taking a backup before moving. -
Linux and Unix ln command tutorial with examples
Tutorial on using ln, a UNIX and Linux command to make links between files. Examples of creating a hard link, creating a symbolic link, and a broken symbolic link.