Difference between atime, mtime and ctime Linux file timestamp
Every Linux file has three kind of file timestamps: Access Timestamp (atime), Modified Timestamp (mtime), and Changed Timestamp (ctime).
Access Timestamp indicates when the last time a file was read/accessed. If a software reads a file Access timestamp gets changed even if nothing has been removed or added to the file.
A modified timestamp indicates when the contents of a file were last modified. For example, you opened a text file and added or removed few lines and saved the file. In this case, both its access timestamp and modified timestamp will be changed.
A changed timestamp indicates when a file’s metadata has been modified. For example, a change in File Permission will update its Changed Timestamp.
Viewing a timestamp of a file
To view the Modified timestamp the ls -l [Filename] command has to be entered
To view the Access timestamp the ls -lu [Filename] command has to be entered
To view the Changed timestamp the ls -lc [Filename] command has to be entered
Viewing all timestamps of a file at once
The stat [filename] command has to be given to see all the timestamps of a file simultaneously.
As you can see in the screenshot above, the stat command not only shows us the Accessed/Modified/Changed time but also the file permissions of its user and group. It also displays the file size and file type. If you notice, the stat command also displays the timezones in Accesses/Modified/Changed time.
Changing the timestamp of a file
To change the access timestamp of a file, enter the command touch -a [filename]. To change the modified timestamp of the file, enter the command touch -m [filename].
If you want to change the “Changed” Timestamp, you can change it by modifying file permissions of file. For example chmod +x [filename] will change your “Changed timestamp”.
If you want to keep the desired timestamp of a file, then enter the command touch -d “2020-01-15 10:30:45” [filename]. Here, you can enter any date. This command changes the access and modified timestamps.
Importance of Linux file Timestamps.
Timestamps tell us the date and time when files are last accessed or modified. This enables the backup software to decide what files are needed to backup and what files are can be left. Backup software backup files whose timestamp has been changed. Therefore, you can also force an application to do any work with that file by changing the timestamp of a file.