问题
截至目前,Unix 标准不支持文件“创建时间”属性。然而,许多文件系统,如 ext4、exFAT 和 NTFS,在内部确实节省了文件的创建时间。
注意:我说的是创建时间(又名crtime
,btime
或出生时间),而不是ctime
(又名更改时间)。
有一段时间,即使在 Linux 上使用 ext4,这些信息也不容易访问(需要使用debugfs
),但现在,新的 Linuxstatx()
界面提供了一种简单的方法(API)来访问文件创建时间,因此像stat
和等工具ls
开始整合功能基于文件创建时间(尽管只读)。
主要问题:如何更改 exFAT 文件系统上文件的创建时间?(使用Linux)
把想法大声说出来
我的猜测是它还没有在完整的工具链上实现,所以:缺什么?
- 我知道从内核 5.7 开始,Linux 内核有一个由 Samsung 贡献的 exFAT 的新内部实现。这个新的实现(或任何其他)是否支持更改文件时间戳(修改、创建...)?
- 是否实施于linux虚拟文件系统侧面更改文件创建时间?
- 是否有任何 Linux API(内核和用户空间)来更改文件创建时间?
- 如果没有,考虑到当前的 Linux 内核或 exFAT 的 FUSE 实现,是否有可能(相当容易)编写一个可以更改文件创建时间的工具?
一些资源
- 这个仅限 Windows 的工具允许进行此类更改:http://www.nirsoft.net/utils/bulk_file_changer.html
- 这篇非常详细的博客文章提出了同样的问题,并且到目前为止,它说这是不可能的:https://miloserdov.org/?p=3069