Touch Command in Linux/Unix with Examples
touch command is a way to create empty files (there are some other mehtods also). You can update the modification and access time of each file with the help of touch command.
It is available in ReactOS, Unix, TSC's FLEX, Unix-like operating systems, the Microware OS-9 shell, the AROS shell, and Digital Research/Novell DR DOS. Also, the command is available for Microsoft Windows and FreeDOS.
SUS (Single Unix Specification) defines that the touch command should modify the modification times, access times, or both for the files. The file is recognized by a pathname imported as one argument. Also, it represents that if the file recognized doesn't exist, the file is made, and the modification and access times are fixed as specified. The touch command applies the current time if new timestamps are not specified.
Brief History of touch
First, a touch utility occurred in Version 7 AT&T UNIX. The command is today available for several different OSes, including various Unix, DOS, Unix-like systems, the classic Mac OS, and Microsoft Windows. The release of touch grouped in GNU coreutils was specified by Paul Rubin, Randy Smith, David MacKenzie, Jim Kingdon, and Arnold Robbins.
For Microsoft Windows, the command is an isolated package as a part of the native Win32 ports UnxUtils collection of GNU Unix-like utilities. The FreeDOS edition is licensed upon the GPL and was integrated by Kris Heidenstrom. KolibriOS and DR DOS 6.0 add the touch command's implementation. Also, the touch command has been shipped to the IBM i OS.
Working of touch in Ubuntu
touch is a common Linux command to make an empty file or modify the file timestamps (file access time, last date, or modification).
Linux files contain three timestamps: ctime, mtime, and atime. These timestamps are explained below:
Look above, we have created two files namely 'myfile1' and 'myfile2' through touch command. To create multiple files just type all the file names with a single touch command followed by enter key. For example, if you would like to create 'myfile1' and 'myfile2' simultaneously, then your command will be:
Linux touch -a command
touch command with option 'a' is used to change the access time of a file. By default, it will take the current time of your system.
To see the access and change time of your file, you need to use stat command.
In above snapshot we have used 'stat' command (which we'll learn in later tutorial)just to check the status of our directory (usr). So don't get confused with that. Now you can match the access time of directory (usr) before and after passing the command 'touch -a usr. It has taken the default access time of our system.
Linux touch -m command
The touch '-m' option will help you to change only the modification time of a file.
Notice carefully in the above snapshot, only modification time has been changed.
Linux touch -r option
This command will update time with reference to the other mentioned command. There are two ways to use this command. Both works the same.
In below example, we want to change time-stamp of 'Demo.txt' with reference to 'demo.txt'. Firstyou can write it as,
First we'll see the status of both the files before using touch comand.
Now after using touch -r demo.txt Demo.txt command, time of Demo.txt has been changed wit reference to time of demo.txt
Linux touch -t command
with this command, you can change the access time of a file by determining a specified time to it.
It will modify the time by specified time instead of default time.
Format of time will be:
Below screenshot shows status of file 2.png before the touch command,
This screenshot shows that time of file 2.png has been modified by our specified time.
Linux touch -c command
Using 'c' option with touch command will not create an empty file, if that file doesn't exist.
In above figure, we wanted to create file 'movie' but with 'c' option no file has been created.
Set particular timestamp
We can use the touch command to fix a particular timestamp for a file. For instance:
The timestamp format pursues a particular pattern:
Setting file timestamp with the data string
We can use the touch command with the -d flag for setting a timestamp with a date string. Its syntax is as follows:
The date string is an adjustable time format and allows several human-readable text formats. A few examples are as follows:
Next TopicLinux rm