How to Use touch Command in Linux: 12 Practical Examples

Use touch Command in Linux creates empty files or updates file timestamps without altering content. It modifies access and modification times with options to set specific dates or use reference files, aiding efficient file time management in development environments.

🤖AI Overview:

Use touch Command in Linux to create empty files and modify file timestamps including access and modification times without altering file contents. It creates a file only if it does not exist and can update timestamps to the current or specified time. The command supports options to handle multiple files, set times from a reference, and modify symbolic link timestamps.

Linux File Timestamps

As we mentioned, to change the time of files and directories or how you access them, use touch command in Linux. So, let’s see what are these three timestamps:

Access time: Last time when a file was accessed. When a command, like grep or cat, analyzes a file’s contents, the access time, or atime, changes. The ls -lu command shows the file’s atime.

Modify time: Last time when a file was modified. When a file’s contents change, the modification time, or mtime, changes. The mtime for files is displayed by the ls -l command.

Change time: Last time when file metadata was changed. When a file’s property, such as its name, permissions, or location, change, the change time, or ctime, also changes. The ctime for files is displayed by the ls -lc command.

Prerequisites to Use touch Command in Linux

To Use touch Command in Linux, your machine needs to meet all the below specifications:

  • A Server running Linux VPS.
  • Access to the command line/terminal.
  • Basic terminal commands, such as ls.

Syntax of Linux touch Command

The fundamental touch Command syntax is shown below:

touch <options> <file or directory name>

syntax for touch command

touch Command Options

The touch utility functions both with and without options for advanced queries. There are options with lengthy and short formats. This tutorial all important commands that you need to use touch command in Linux that each one comes with an option to do the required task. Let’s see all available touch command options in the below table:

OptionsDescription
-aChanges the access time.
c
--no-create
Avoids creating a new file.
-d=[string]
--date=[string]
Changes a timestamp using a date string.
-fNo effect. In older BSD's the option forces changes.
-h
--no-dereference
Changes a symbolic link's timestamp.
-mChanges the modification time.
--helpOpens the help menu.
-r=[file]
--reference=[file]
Changes a timestamp to the referenced file's timestamp.
-t[stamp]Modifies a timestamp, where the stamp is the date/time format.
-v
--version
Prints the program version.

touch Command Examples in Linux

So far, you learned about touch command meaning. Let’s continue this guide with 12 practical Linux touch Examples which explain how to use touch command in Linux.

Remember that the touch command is used in all Linux distributions such as Ubuntu, Debian, CentOS, etc.

1. Create an Empty File

touch command in Linux is used for creating a new file (while it does not exist). To do this, the simplest syntax of the touch command is used:

touch <filename>

For example, if you have not already created a file called opera, you can use the above command to create your considered file:

touch opera
Output
~/touch$ touch opera
~/touch$ ls -l
total 0
-rw-rw-r--1 kb 0 Oct 25 2:24 opera
~/touch$

Using ls command, you can list the content of file and directory.

In the case of the existing file, touch will change all three timestamps to the current time without changing the contents and permission of the file as you can see below:

Output
~/touch$ ls -l
total 4
-rw-rw-r-- 1 kb kb Oct 25 2:24 opera
~/touch$ touch opera
~/touch$ ls -l
total 4
-rw-rw-r-- 1 kb kb Oct 25 2:35 opera
~/touch$

In this way, the timestamp of the file will be updated to the current time and the access and modification time is successfully updated. The access and modification times have been updated successfully as a result.

2. Create Multiple Empty Files with touch command

You can use touch command in Linux to create more than one empty file. Considering the names of the files you need to create, run the command below to create multiple empty files:

touch opera1 opera2
Output
~/touch$ touch opera 1 opera 2
~/touch$ ls -l
total 0
-rw-rw-r--1 kb kb 0 Oct 25 2:45
-rw-rw-r--1 kb kb 0 Oct 25 2:45
~/touch$

Applying little changes in the above command, you can create large batches of files. To do this, Add curly braces and indicate the first and last element in addition to the filenames:

In the below example, we create 5 files with appended numbering:

touch opera{1..5}
Output
~/touch$ touch opera{1..5}
~/touch$ ls -l
total 0
-rw-rw-r--1 kb 0 Oct 25 2:57 opera1
-rw-rw-r--1 kb 0 Oct 25 2:57 opera5
-rw-rw-r--1 kb 0 Oct 25 2:57 opera2
-rw-rw-r--1 kb 0 Oct 25 2:57 opera3
-rw-rw-r--1 kb 0 Oct 25 2:57 opera4
-rw-rw-r--1 kb 0 Oct 25 2:57 opera5
~/touch$

Also, you can do the same using letters. But it is not possible to combine letters and numbers.

touch opera_{a..e}
Output
~/touch$ touch opera{a..e}
~/touch$ ls -l
total 0
-rw-rw-r--1 kb 0 Oct 25 3:05 opera-a
-rw-rw-r--1 kb 0 Oct 25 2:57 opera-b
-rw-rw-r--1 kb 0 Oct 25 2:57 opera-c
-rw-rw-r--1 kb 0 Oct 25 2:57 opera-d
-rw-rw-r--1 kb 0 Oct 25 2:57 opera-e
~/touch$

3. Avoid Creating A New File

By now, you certainly know that the touch command creates a new file if it does not exist. But what if you need to get a different result?

For example, if you do not need a new file creation when running the touch command or only need to modify the read or access time of your considered file, the below command is all you should run:

touch -c <filename>

According to our example:

touch -c new_opera

Using the -c flag, touch command will not create a new file and just modify the timestamps of the existing file. However, you can run the command below to check the list directory contents and make sure that the file is not there:

ls -l
Output
~/touch$ touch -c new-opera
~/touch$ ls -l
total 4
-rw-rw-r--1 kb kb 6 Oct 25 3:12 opera
~/touch$

4. Set Specific Timestamp (Access & Modification)

In this part, you will learn How to use touch command in Linux to set a specific timestamp for an existing file. While touch command mostly changes the timestamps to the current timestamp. So, there should be a way to make an exception. Using the -t option lets you set access and modification time to a past or future date:

touch -t <timestamp> <filename>

Here is the specific pattern of timestamp format:

[[CC]YY]MMDDhhmm[.ss]
  • CC – First two digits of a year
  • YY – Second two digits of a year
  • MM – Month of the year (01-12)
  • DD – Day of the month (01-31)
  • hh – Hour of the day (00-23)
  • mm – Minute of the hour (00-59)
  • ss – Seconds (00-59)

In the instance above, CC is not required. In actuality, CCYY is also optional; in that instance, the current year will be used. Likewise, seconds are optional and have a default value of 00.

For example, to change the timestamps to the 11th month, 26th day, and 6th hour of the current year, you need to run:

touch -t 11260600 opera

To view the details of timestamps, use the --full-time option.

:~/touch$ ls -l --full-time

5. Set File Timestamp in linux

One of the situations you can use touch command in Ubuntu Linux is when you need to use another date as timestamp. Using a date string as -d flag enables you to set a timestamp. The date string is a versatile time format that supports a wide range of legible textual representations.

touch -d <string> <filename>

In this way, the actual date for the file timestamps can be manipulated. For example, you can run the command below to change the timestamp:

touch -d +1 week opera
Output 
~touch$ ls -l
-rw-rw-r--1 kb kb 6 Oct 25 3:15 opera
~touch$ touch -d +1 week opera
~touch$ ls -l
total 4
-rw-rw-r--1 kb kb 6 Nov 01 2023 opera 
~touch$

6. Update Access Time of File to Current

Let’s see how to use touch command in Linux to change the only access time of file. In this case, touch command is helpful when you do not prefer to change all the timestamps of a file. To update the access time of your considered file, the -a option can be used with touch.

Here is the basic syntax:

touch -a <filename>

To change the access time for the file named opera, run:

touch -a opera

Finally, you can use the command below to view the changed time:

ls -lu
Output
~touch$ s -lu
total 4
-rw-rw-r--1 kb kb 6 Nov 26 1989 opera
~touch$ touch -a opera
~touch$ ls -lu
total 4
-rw-rw-r--1 kb kb 6 Oct 25 3:23 opera
~touch$

7. Change Access Time Clearly

Also, you can use touch command in ubuntu, centos and etc. to modify the access time to a specific timestamp. To do this, run the command below by combining the -a and -t options:

touch -at <timestamp> <filename>

If you prefer to check the access time before doing the changes, type:

ls -lu

For example, to change the access for the file opera to 10:10 1989 Nov 26th:

touch -at 8911261010 opera

Again, check the modification time by running the following command:

ls -lu
Output
~touch$ s -lu
total 4
-rw-rw-r--1 kb kb 6 Oct 25 3:27 opera
~touch$ touch -at 8911261010 opera
~touch$ ls -lu
total 4
-rw-rw-r--1 kb kb 6 Nov 26 1989 opera
~touch$

8. Update the Modification Time to Current

To use touch command in Linux to update the modification time only, you can use the general below syntax:

touch -m <filename>

To change the modification time to the current timestamp, the -m is used.

Before changing the timestamps, you can check the mtime of the file:

ls -l

Then, run the following command to change the modification time for your considered file:

touch -m opera

Lastly, recheck the mtime after the change by running the command below:

ls -l
Output
~touch$ s -l
total 4
-rw-rw-r--1 kb kb 6 Nov 26 1989 opera
~touch$ touch -m opera
~touch$ ls -l
total 4
-rw-rw-r--1 kb kb 6 Oct 25 1989 3:35 opera
~touch$

As you see, changing the modification time to the current timestamp is done by the -m option by default.

9. Update the Modification Time Clearly

In this part, you will learn How to use touch command in Linux to change modification time for a specific file. To do this, you need to combine the -m option with -t to clearly state the modification timestamp. Here is the basic syntax:

touch -mt <timestamp> <filename>

If you need, check the file’s mtime before changing it:

ls -l

Then, as an example, change the access for the file opera to 10:10 1989 Nov 26th:

touch -mt 8911261010 opera

Finally, you can use the following command again to check the modification time:

ls -l
Output
~touch$ ls -l
total 4
-rw-rw-r--1 kb kb 6 Oct 3:45 opera
~touch$ touch -mt 8911261010 opera
~touch$ ls -l
total 4
-rw-rw-r--1 kb kb 6 Nov 26 1989 opera
~touch$

As you see above, updating the modification time to a specific value can be done by adding the -t option.

10. Change Modification and Access Time in the Same time

To change both modification and access time, you need to use touch command in Linux as you see below:

touch -am <filename>

Run the below commands to check the file’s atime and file’s mtime before changing:

ls -lu
ls -l

Then, to change both times for the opera file to the current timestamp, type:

touch -am opera

Finally, to recheck the atime and mtime after the change, run:

ls -lu
ls -l
Output
~touch$ ls -l
total 4
-rw-rw-r--1 kb kb 6 Nov 26 1989 opera
~touch$ ls -lu
total 4
rw-rw-r--1 kb kb Nov 26 1989 opera
~touch$ touch -am opera
~touch$ ls -l
total 4
rw-rw-r--1 kb kb Oct 25 3:58 opera
~touch$ ls -lu
total 4
rw-rw-r--1 kb kb Oct 25 3:58 opera
~touch$

11. Use another File Timestamp as Reference

To set timestamps using a reference file, you can use touch command in Linux. The -r option is used with touch command to use the timestamps of another file.

To set the timestamp using a reference file, run:

touch -r <reference file> <target file>

In the below example, we create a new file and reference the timestamp of an existing opera file:

touch -r opera new_opera

Using the following command, you can check the timestamp for both of the above files:

ls -l
Output
~/touch$
touch -r opera new-opera
~/touch$ ls -l
total 4
-rw-rw-r-- 1 kb kb 0 Nov 26 1989 new-opera
-rw-rw-r-- 1 kb kb 6 Nov 26 1989 opera
~/touch$

12. Change Timestamp of a Symbolic Link

In the previous example, you learned the way you can use touch command in Linux to change the timestamps by changing the reference file’s timestamp. In this part, you will learn how to do the same without doing that. Using the -h option, allows you to modify the time for a symbolic link.

touch -h <filename>

Before changing, you can use the command below to check the time for an existing symbolic link:

ls -l

Now, to set the timestamp for the symbolic link to the current time, run:

touch -h link

When you are finished, you can check the timestamp to confirm the change. To do this, type:

ls -l
Output
~/touch$ ls -l
total 4
-rw-rw-r-- 1 kb kb 4 Nov 26 1989 link -> opera
-rw-rw-r-- 1 kb kb 6 Nov 26 1989 opera
~/touch$ touch -h link
~/touch$ ls -l
total 4
-rw-rw-r-- 1 kb kb 4 Oct 25 4:14 link -> opera
-rw-rw-r-- 1 kb kb 6 Nov 26 1989 opera
~/touch$

Obviously, if you do not use the -h option, the symbolic link’s timestamp will stay unchanged and only the opera file’s timestamp will change.

That’s it! Using the above examples, now you know how to use touch command in Linux to modify the timestamps of the file.

Conclusion

The ability to use touch command in Linux is essential knowledge for developers managing files and automating workflows. This command provides a straightforward method for creating empty files and managing file timestamps, which is integral to build systems, backups, logging, and more.

By understanding its syntax, options, and practical applications outlined in this guide, developers can leverage touch command efficiently to maintain and optimize their working environments.

Mastering touch helps improve script robustness, control file metadata precisely, and facilitates smoother development pipelines, confirming its status as a vital Linux utility.

FAQ

To create a new empty file, use the syntax: "touch filename". This creates the file only if it does not already exist.

Yes, using the option -c with the touch command modifies existing file timestamps without creating a new file if it does not exist.

Use the -t option followed by the timestamp in the format [[CC]YY]MMDDhhmm[.ss], for example: "touch -t 202310251230.00 filename" to set a specific modification and access time.

Yes, the -a option updates only the access time, while the -m option updates only the modification time of a file.

You can create multiple files by listing them separated by spaces: "touch file1 file2", or use brace expansion for ranges like touch file{1..5}.

Yes, the -r option allows the touch command to reference another file's timestamp when modifying the target file's timestamps.

Use the -h option with touch to change the timestamp of a symbolic link itself rather than the referenced file.

Access time records when a file was last read, modification time records the last content change, and change time records metadata changes. The touch command can update access and modification times but not the change time directly.

The touch command allows developers to create empty files quickly, update timestamps for deployment or build processes, and manipulate time metadata for testing or version control automation.

Leave a Reply

Your email address will not be published. Required fields are marked.