BTRFS 文件/目录包含时间戳:
- 创造 (otime)
- 修改(mtime)
- 属性修改(ctime)
- 访问(一次)
是否有一些 API 可以让我为文件设置所有这些时间戳?我用谷歌搜索了一下,但还没有找到任何东西。
编程语言无关紧要,我希望会有一些 C API,但 python 也很好,而且会更好。
在 C 中,可以使用utime(2)
及其亲属设置 mtime 和 atime。 utime(2)
本身给你秒精度,utimes(2)
有微秒,utimensat(2)
给你纳秒。有一些变体,比如futime
如果你有一个文件句柄而不是一个文件名。
Python 可以通过该函数提供相同的os.utime
功能。
传统上,除了手动编辑原始文件系统外,不可能随意修改 otime 或 ctime。我不知道 Linux 提供了任何内核 API 来修改它们。当然,你可以通过某种方式改变它的状态来更新ctime到当前时间,你可以通过删除和重新创建文件来更新otime到当前时间。原则上,您可以通过首先更改系统时钟(如果您是 root)将它们设置为不同的时间,但这可能会弄乱系统上的许多其他东西,并且可能是一个坏主意。