Node.js学习笔记: 文件权限和读写flag属性
老是记不住文件或目录权限的数值表达和字符表达。故整理出该笔记,方便以后查阅。
文件权限的数字类型
用数字来代表各个权限,各权限的分数对照表如下:
r: 4
w: 2
x: 1
文件的基本权限有9个,分别是owner、group、others三种身份各有自己的read、write、execute权限。例如文件的权限字符为”-rwxrwxrwx”这9个权限是三个三个一组的。每种身份(owner、group、others)各自的权限(r、w、x)分数是需要累加的。
例如,当权限为[-rwxrwx—]时,分数则是:
owner = rwx = 4 + 2 + 1 = 7
group = rwx = 4 + 2 + 1 = 7
others = — = 0 + 0 + 0 = 0
所以在设置权限的更改时,该文件的权限数字就是770。
文件的读写flag属性
在读写文件时,有时候需要设置文件的读写操作属性。例如使用过readFile()方法完整读取一个文件时,
fs.readFile(filename [, options], callback)
其中options参数值为一个对象,在其中指定读取文件时需要使用的选项,在该参数对象中可以使用flag属性指定对该文件采取什么操作,默认值为”r”。可指定值如下:
flag 说明
r 读取文件。如果文件不存在时抛出异常
r+ 读取并写入。如果文件不存在时抛出异常
rs 以同步方式读取文件并通知操作系统忽略本地文件系统缓存。如果文件不存在时抛出异常
w 写入文件。如果文件不存在时则创建该文件。如果文件已存在则清空文件内容
w+ 读取并写入文件。如果文件不存在时则创建该文件。如果文件已存在则清空文件内容
wx 作用与”w”类似。但是以排他方式打开文件
wx+ 作用与”w+”类似。但是以排他方式打开文件
a 以追加方式写入文件。如果文件不存在时则创建该文件
a+ 读取并以追加方式写入文件。如果文件不存在时则创建该文件
ax 作用与”a”类似。但是以排他方式打开文件
ax+ 作用与”a+”类似。但是以排他方式打开文件