I understand that ctime changes when the file metadata or the file content is changed and mtime on file content modification.
I would like to know the reason for updating ctime when the content of the file is changed, don't we have mtime tracking that already?
On my MAC
usxxkothan3m1:temp kothan3$ touch foo.txt
usxxkothan3m1:temp kothan3$ stat -x foo.txt
File: "foo.txt"
Size: 0 FileType: Regular File
Mode: (0644/-rw-r--r--) Uid: (276196474/ kothan3) Gid: (720748206/CORP\Domain Users)
Device: 1,4 Inode: 11745569 Links: 1
Access: Mon Aug 24 11:59:07 2015
Modify: Mon Aug 24 11:59:07 2015
Change: Mon Aug 24 11:59:07 2015
usxxkothan3m1:temp kothan3$ echo "write something here" >> foo.txt
usxxkothan3m1:temp kothan3$ stat -x foo.txt
File: "foo.txt"
Size: 21 FileType: Regular File
Mode: (0644/-rw-r--r--) Uid: (276196474/ kothan3) Gid: (720748206/CORP\Domain Users)
Device: 1,4 Inode: 11745569 Links: 1
Access: Mon Aug 24 11:59:24 2015
**Modify: Mon Aug 24 11:59:21 2015**
**Change: Mon Aug 24 11:59:21 2015**
usxxkothan3m1:temp kothan3$ chmod u-w foo.txt
usxxkothan3m1:temp kothan3$ stat -x foo.txt
File: "foo.txt"
Size: 21 FileType: Regular File
Mode: (0444/-r--r--r--) Uid: (276196474/ kothan3) Gid: (720748206/CORP\Domain Users)
Device: 1,4 Inode: 11745569 Links: 1
Access: Mon Aug 24 11:59:24 2015
Modify: Mon Aug 24 11:59:21 2015
**Change: Mon Aug 24 11:59:37 2015**
mtimeitself metadata? Thus ifmtimeis modified as result of data being modified, metadata is modified, therefore resulting in settingctimeto the time when that metadata modification (setting of mtime) occurred. At least that would be my interpretation; I have no idea if that is the official one.