I would like to change all dates on a file [all four reported by stat command]. I cannot find a way to change the "inode last changed" date. I've tried:

touch -t
SetFile -d
SetFile -m

but this single date remains unchanged.

Also, is there any way to move file between directories and leave all of the dates intact? I am moving whole directories, with lots of files inside, so I would prefer to have a single command to do so, if not - I will read the date upfront and set it after the move.


You cannot controlctime.ctime is set with the creation of the inode. ctime changes to the mtime when you modify a file. ctime is set to the current date and time when you modify the inode metadata, such as changing mtime, file permissions, or renaming a file.

The closest you can come to matching atime,mtime, and ctime would be totouch a file which will set all three to the current date and time. But at anytime ctime may change, even OS X applications can cause changes to the inode metadata without changing the content of a file.

btime or birthtime will not change when moving files on the same filesystem.

Tools that support preserving file metadata are ditto, pax, and cp with the p option. None of these tools support preserving birthtime across filesystems.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .