乐趣区

关于node.js:WSL中通过fsstat获取文件的birthtime不正确的原因

原由

起初是在 WSL 中开发一个动态博客我的项目,想要偷个懒,想间接通过 fs.stat() 获取文件的创立工夫来生成文章的工夫线排序,包含更新工夫

不对劲

当我更改了一个 md 文件的内容时,我发现工夫线发生变化了,我是通过 (await fs.stat(filePath)).birthtimeMs 获取文件创建工夫的,然而我发现这个值居然在我改变过文件后变动了,变成了我扭转文件的工夫戳,白丝不の七姐(bushi)

找起因

各种让我一通找之后,发现是 WSL 下的文件系统的问题,具体能够查看 github 上他人 19 年的时候提的一个 issue:stat.birthtime is incorrect under WSL · Issue #30860 · nodejs/node (github.com), 起因就是没有实现这个货色,而后就默认返回你mtime
通过 stat 命令一查看,我惊呆了,文件的 Birth 居然是-,你没看错就是一个杠

  Size: 2477            Blocks: 8          IO Block: 4096   regular file
Device: 810h/2064d      Inode: 148374      Links: 1
Access: (0644/-rw-r--r--)  Uid: (1000/     ldl)   Gid: (1000/     ldl)
Access: 2021-11-08 16:35:59.405414600 +0800
Modify: 2021-10-28 09:36:18.918000000 +0800
Change: 2021-10-28 09:36:18.913397200 +0800
 Birth: -

自己测试在 win 上的是失常的。

总结

还是老老实实在 win 上开发吧,gym!

退出移动版