文件修改时间和文件更改时间有什么区别?

23

我对文件修改时间和文件更改时间这两个术语感到困惑。有人能帮我澄清一下吗?


我们需要的是一份系统调用列表,这些调用会随着时间而改变 :-) - Ciro Santilli OurBigBook.com
1个回答

31

mtime是修改时间——内容已更改。

ctime是状态更改时间——权限、所有权以及内容。

维基百科说:

* mtime: time of last modification (ls -l),
* ctime: time of last status change (ls -lc) and
* atime: time of last access (ls -lu).
请注意,ctime不是文件创建时间。写入文件会更改其mtime、ctime和atime。更改文件权限或所有权会更改其ctime和atime。读取文件会更改其atime。使用noatime选项挂载的文件系统不会在读取时更新atime,而relatime选项仅在先前的atime早于mtime或ctime时才提供更新。与atime和mtime不同,无法使用utime()(例如,通过touch使用)设置ctime;将其设置为任意值的唯一方法是更改系统时钟。

注意,这里也有层次结构:
  • 修改:更改 mtime、ctime 和 atime。
  • 状态变更:更改 ctime 和 atime。
  • 访问:仅更改 atime。
- Christian Herenz
编辑队列已满,但如果有任何阅读此内容的人拥有足够的声望,则此帖子中URL的最新版本为https://en.wikipedia.org/wiki/Stat_(system_call),值得编辑以获取URL的https版本。 - AJM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接