写 bug 的时候,通过 fs.stat
获得文件状态的时候,被其 mode
的值给吸引到了。
Stats {
dev:3229478529,
mode:33206,
nlink:1,
uid:0,
gid:0,
rdev:0,
blksize:4096,
ino:1970324837039946,
size:0,
blocks:0,
atimeMs:1582306776282,
mtimeMs:1582482953967,
ctimeMs:1582482953968.2532,
birthtimeMs:1582306776282.142,
atime:2020-02-21T17:39:36.282Z,
mtime:2020-02-23T18:35:53.967Z,
ctime:2020-02-23T18:35:53.968Z,
birthtime:2020-02-21T17:39:36.282Z
}
遇到文件有:33188、33279 等,
文件夹有:16895、16877 这些。
看文档,只有非常简单的一句话:A bit-field describing the file type and mode.
(描述文件类型和模式的位字段。)
这啥意思?
看不懂。
于是开始全网搜索,看看有没有类似的问题。
甚至把“A bit-field describing the file type and mode.”这句话都丢到搜索引擎里去过,
还是找不到答案……
感觉应该和文件的权限有关,但没有任何地方提到过有关这串数字的说明。
不得已,只能去翻阅 nodejs 的源代码,看看能不能从源代码中找到答案。
然后当我打开 lib/fs.js
的时候,我就看到了这样的话:
// Maintainers, keep in mind that ES1-style octal literals (`0666`) are not
// allowed in strict mode. Use ES6-style octal literals instead (`0o666`).
8进制!
8进制!
8进制!
一切的疑惑都解开了