'What is a difference between `mtime` and modification time in gsutil rsync documentation?

The gsutil rsync documentation describes two options which sound identical:

Option Description
-i This forces rsync to skip any files which exist on the destination and have a modified time that is newer than the source file. (If an existing destination file has a modification time equal to the source file's, it will be updated if the sizes are different.)
-u When a file/object is present in both the source and destination, if mtime is available for both, do not perform the copy if the destination mtime is newer.

Although they use different terms, mtime and modification time, still it seems to be the same. At least I have not found any info on the difference. Both options effectively state that the file will not be copied (skipped) if the destination file is newer.

However, there must be some difference. I can't assume that the product team kept two identical options by mistake.

What is the difference between mtime and modification time particularly in the context of the gsutil rsync command? And, consequently, what is the difference in effect of these two options?

The only possible difference may be in the case of equal modification times of the source and destination, as described in the parentheses. In this case, the documentation might be improved to explicitly link the two options and point out the only difference. At least the same terms should be used to avoid confusion.



Solution 1:[1]

Google Cloud Storage objects do not have a modified time. Objects are immutable.

The word mtime is the variable name that holds the file's (or another object type) last modification time. This came from the Unix operating system. Different operating systems have different timestamp precision, for example, the original DOS operating system timestamp precision was two seconds. Unix was one second. Many Linux variants also use one second. NTFS uses nanoseconds but that precision is limited to the clock hardware.

The term modification time means the time an object was last modified. It is typically expressed using strings that humans can read, for example, ISO 8601 YYYY-MM-DDTHH:MM:SS-TZ.

The last modified time is stored in the variable named mtime in most Unix-derived operating systems and many others and is a binary number. mtime starts at 1970 for most operating systems except for Windows.

They are for all practical purposes the same thing - one is a term and the other a variable name. They are often used interchangeably.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1