原因是我最初是在WSL中开发一个静态博客项目。想偷懒,想直接通过fs.stat()获取文件的创建时间来生成文章的时间线排序,包括更新时间。当我更改一个md文件时,我发现时间线已经改变了。我通过(awaitfs.stat(filePath)).birthtimeMs获取了文件创建时间,但是我发现我改文件后这个值变了。变成了我改了文件的时间戳,找到原因了。我通过stat命令检查了它。我很震惊。文件的诞生原来是-,你没看错,是一个barSize:2477Blocks:8IOBlock:4096regularfileDevice:810h/2064dInode:148374Links:1Access:(0644/-rw-r--r--)Uid:(1000/ldl)Gid:(1000/ldl)访问:2021-11-0816:35:59.405414600+0800修改:2021-10-2809:36:18.918000000+0800更改:2021-10-2809:36:18.913397200+0800Birth:-找了下以为是WSL下的文件系统问题,可以参考19年github上别人提的一个issue:stat.birthtimeisincorrectWSL下·Issue#30860·nodejs/node(github.com),后来发现不对,在我的Ubuntu服务器网站上也是一样的现象,被真相惊呆了,后来看到有人在论坛说只要是基于Debian发行版的,就无法获取文件的准确创建时间;还有一种方法:获取Ext4文件系统crtime获取创建时间:先用ls-i获取文件的inode,然后df查看当前挂载位置/dev/vda1,最后通过sudodebugfs查看文件-R'stat
