The touch command is a simple but useful command in Unix-like
systems that allow users to create files and change timestamps
directly from the terminal. It is one of the most fundamental terminal commands in Linux,
and sysadmins often use this command for a variety of purposes.
Today, we have compiled a short guide outlining 15 practical
examples of touch. You will learn various aspects of touch using
hands-on exercises after completing this guide. So, stay with us
throughout this guide and try the examples on your own machine to
make sure they work as you expect them to. [1]

Practical touch Command Examples
for Linux users


The below examples should help you have a complete understanding
of the touch command. However, you should try these commands
yourself if you want to master this tool in general. So, fire up
your Linux terminal and start executing the
below commands as you read them.[2]

1. Create an Empty File Using
touch


On its most basic usage, touch creates a simple file that does
not contain anything. It is very useful in a number of situations,
like when you are experimenting with file operations or some other
terminal commands. To do this, simply pass a filename after the
touch command.

$ touch test

This will create a simple empty file called test in the
current working directory. You can verify this using the
ls command. You can also use touch to create an
empty file on any other directory by simply passing the right path
before the filename.

$ touch /path/to/filename

touch command basics

2. Create Multiple Empty Files
Using touch


You can also create multiple files at the same time from your
terminal by using the touch command. All you need to do is pass all
the filenames you want to create one after another. Take a quick
look at the below command to see how this works.

$ rm test
$ touch test1 test2 test3 test4 test5

The above command will create all five files at the same time.
You can verify this using the ls -l command in
your terminal. You may also use brace expansion for creating
multiple files using touch at once, as shown by the below
example.

$ rm test1 test2 test3 test4 test         # delete the files first
$ touch test{1,2,3,4,5}

The above command will do the same job but in a much cleaner
way.

3. Create a File and Populate
It


The below example shows you how to create a simple file using
touch and fill that with some contents. We are using the Linux
seq command fo this purpose. But you can resort to
other methods if you want.

$ rm test1 test2 test3 test4 test         # delete the files first
$ seq 100 > test

Now the test file is not empty but contains the numbers 1 to 10.
You can verify this using the Linux cat command.

creating data and file with touch

4. Replicate File Access
Time


The touch command allows users to replicate the file access time
across multiple files. You will need to use the -r
option for enabling this. We are going to create a new file called
new, and instead of using the current time, we will
replicate the time values from the test file created
earlier.

$ touch -r test new
$ ls -l

You can verify this using the ls command. You should see that
the file new has a timestamp that is earlier than the
current time and is the same as the file test. There is a
long-form for this option too, called
–reference.

5. Change Access Time of a File
Using touch


Linux admins often use touch command for modifying the access
time of files created earlier. The next command shows us how to do
this. We need to use the -a option for doing this.
First, check the timestamp of the file test using the
below command.

$ ls -l test --time=atime

Now, use the -a option to change this timestamp
using touch. Note that, the –time=atime option of
ls gives us the access time of a file.

$ touch -a test

Now, if you again check the timestamp of test, you will
notice how it has changed after executing the above command. It is
one of the most common usages of touch in Linux.

6. Change Modification Time of
Files Using touch


You can also change the modification time of a file in Linux
using touch. You will need to use the -m option
for doing this. Take a close look at the below example to see how
this works.

$ ls -l test
$ touch -m test

Firstly, we have viewed the last modification time of
test using ls. Then we have used the
-m option of touch to change this value to the
current time. You can verify this by running the
ls command one more time.

7. Change Date and Time to Current
Time


You can use the -a and -m
option together to change both the access time and modification
time of a file in Linux. To demonstrate this, you will need to use
an old file. You can simply run the below command on one such file
to see if it works as expected or not.

$ stat /path/to/old/file

You can see all the time-related information of an older file
using the stat command. It will show the last
access time, modify time, and change the time of your file. Now use
the below command to change the date and time to current date and
time.

$ touch -am /path/to/old/file

Verify the change in date and time by using the
stat command one more time.

$ stat /path/to/old/file

date time to current date

8. Omit the Creation of a
File


The -c or –no-create option of
touch allows us to omit the creation of a file. Although you may
think of this as unproductive, many users use this to check for a
file’s existence.

$ touch -c new-file
$ touch --no-create new-file

When you run the above commands, there will be no change in your
working directory. You can run the ls command once
again to verify this.

9. Change the Date of a
File


We can also use the touch command to manually change the date of
a file. You will need to use the -d or
–date option for doing this. The below command
shows you how to change a file’s date to an earlier date using
touch.

$ ls -l test
$ touch -d '15 Mar' test

Now, if you run the ls command again, you will see that it shows
the file’s date to be Mar 15. But you created this file today,
right? If you look closely, you will see that now ls is only
showing the date, not the time. You can even use this command to
set the date to be in the future.

10. Change Date and Time to
Customized Values


The -t option of touch enables us to change
both the date and time of a file to personalized values. This way,
we can change several parameters, including year, month, date,
hour, minutes, and seconds. Take a close look at the following
example to see how this works.

$ ls -l test                        # display current time & date
$ touch -t 2025 02 01 04 22 test

Now run the ls command again to check the date and time
parameters. The argument to the -t option is in
the format YYMMDDhhmm. Since we have set the values to be
in the future, ls will not be able to show the time parameters.

11. Change the Date
Verbosely


You can also change the date of a file verbosely using touch.
Simply pass the argument of the –date option as a
string for doing this. The below command shows how to change the
date of a file to the previous day.

$ touch --date="yesterday" test

Use the following command to change the date to the next
day.

$ touch --date="tomorrow" test

Verify the dates by using the ls command and see if they are
working as expected.

verbose date change

12. Replicate File Access Time for
Symlinks


The -h or –no-dereference
option of touch allows users to replicate the file access time
across symbolic links. However, this option will only work on
systems that allow changing the time of symlinks.

$ touch -h link

This command does not work in many Linux distributions[3] due to various security
issues.

13. View the Help
Page


The help page contains summarized information of all possible
options for a command. It is very helpful since users can simply
glance over this page and remember what an option is supposed to be
doing.

$ touch --help

This command will bring the help page for the Linux touch
command in your terminal. It saves you from remembering the usage
of each option.

14. View the Man
Page


The man page or manual contains detailed information about all
the available options for Linux terminal commands[4]. You can consult this
page whenever you want by issuing the following simple command.

$ man touch

This will bring you in-depth documentation of how touch works.
Consult this page whenever you are in confusion regarding the usage
of an option.

15. Display Version
Information


You can view what version of touch is installed on your system
by using the below command. It can help you determine various
information about the installed package.

$ touch --version

Ending Thoughts


The touch command is one of the simplest Linux terminal
commands. It is very easy to learn due to its limited number of
options. However, touch can be really helpful in a number of
situations, and seasonal system admins often use this command for
controlling the timestamps of files. Our editors have provided an
in-depth analysis of various such examples. Hopefully, we were able
to provide you the essential information you were looking for from
this guide. Let us know if you have any questions regarding this
command in the comment section below.

References

  1. ^
    fundamental terminal commands in
    Linux
    (www.ubuntupit.com)
  2. ^
    Linux
    terminal
    (www.ubuntupit.com)
  3. ^
    many
    Linux distributions
    (www.ubuntupit.com)
  4. ^
    Linux
    terminal commands
    (www.ubuntupit.com)

Read more