Software & AppsOperating SystemLinux

How To Change File Timestamps in Linux

Ubuntu 19

In Linux, managing file timestamps is an essential part of system administration. Whether you need to modify timestamps for backup purposes, to track changes, or for any other reason, Linux provides a simple and effective tool to accomplish this task: the touch command.

In this article, we will explore how to change file timestamps in Linux using the touch command and provide examples for better understanding.

Quick Answer

To change file timestamps in Linux, you can use the touch command. Simply running touch filename will update the modification and access timestamps to the current system time. If you need to set a specific timestamp, you can use the -d option followed by a date and time string. Additionally, you can change timestamps relative to the present time by using phrases like "2 hours ago" with the touch command.

Understanding File Timestamps

Before we dive into the commands, it’s important to understand what file timestamps are. In Linux, there are three types of timestamps associated with a file:

  1. Access Time (atime): The time when the file was last read.
  2. Modification Time (mtime): The time when the file’s content was last modified.
  3. Change Time (ctime): The time when the file’s metadata (like permissions or ownership) was last changed.

Please note that the ctime is not a reliable indicator of file creation time, as it changes whenever the file’s metadata is updated.

The touch Command

The touch command is a standard command used to modify the access and modification timestamps of a file. The syntax of the touch command is as follows:

touch [option]... [file]...

The touch command without any option creates a new file if it does not exist. If the file already exists, it updates the access and modification times to the current time.

Changing the Modification Time of a File

To change the modification time of a file to the current time, simply use the touch command followed by the filename:

touch filename

This command will update the mtime and atime of the file to the current system time.

Setting a Specific Timestamp

To set a specific timestamp, use the -d (or --date) option followed by a string that represents the desired date and time:

touch -d "YYYY-MM-DD HH:MM:SS" filename

The -d option tells touch to parse the following string as a date. For example, to set the timestamp to 2 PM on October 20, 2022, you would use:

touch -d "2022-10-20 14:00:00" filename

Changing Timestamp Relative to the Present Time

You can also change the timestamp relative to the present time. For instance, to set the timestamp to 2 hours ago:

touch -d "2 hours ago" filename

This command will set the mtime and atime of the file to 2 hours before the current time.

Changing Timestamps of Multiple Files

To change timestamps of multiple files, you can use the find command in combination with touch. For example, to change the timestamp of all files in a directory:

find DIRECTORY -exec touch -d "2 hours ago" {} +

This command will set the mtime and atime of all files in the specified directory to 2 hours before the current time.

Conclusion

Managing file timestamps is a crucial aspect of Linux system administration. The touch command offers a simple and effective way to change file timestamps. Remember, altering file timestamps can affect processes like backups and audits, so always proceed with caution.

Whether you’re a seasoned system administrator or a Linux beginner, understanding how to manipulate file timestamps is a valuable skill. With the touch command, you have the power to control your file metadata with precision and ease.

How can I change the access time of a file using the `touch` command?

To change the access time of a file using the touch command, simply run touch filename. This will update the access time (atime) of the file to the current system time.

Is it possible to change only the modification time (`mtime`) of a file without changing the access time (`atime`)?

Yes, you can change only the modification time of a file using the touch command. Just run touch -m filename and it will update the modification time (mtime) of the file to the current system time while leaving the access time unchanged.

Can I change the timestamps of multiple files at once?

Yes, you can change the timestamps of multiple files at once using the touch command in combination with the find command. For example, you can run find DIRECTORY -exec touch {} + to change the timestamps of all files in the specified directory to the current system time.

How can I set a specific timestamp for a file using the `touch` command?

To set a specific timestamp for a file, use the -d (or --date) option followed by a string that represents the desired date and time. For example, touch -d "2022-10-20 14:00:00" filename will set the timestamp of the file to 2 PM on October 20, 2022.

Can I change the timestamps of a file relative to the present time?

Yes, you can change the timestamps of a file relative to the present time using the touch command. For instance, running touch -d "2 hours ago" filename will set the timestamps of the file to 2 hours before the current system time.

Leave a Comment

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