WSL中通过fs.stat获取文件的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: 2477Blocks: 8IO Block: 4096regular file
Device: 810h/2064dInode: 148374Links: 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: -
【WSL中通过fs.stat获取文件的birthtime不正确的原因】本人测试在win上的是正常的。
总结 还是老老实实在
win
上开发吧,gym!推荐阅读
- 热闹中的孤独
- Shell-Bash变量与运算符
- JS中的各种宽高度定义及其应用
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 深入理解Go之generate
- 异地恋中,逐渐适应一个人到底意味着什么()
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- “成长”读书社群招募
- 2020-04-07vue中Axios的封装和API接口的管理