【发布时间】:2019-09-21 06:49:00
【问题描述】:
如果我像这样创建一个目录:
mkdir foo
或使用 node.js
fs.mkdirSync('foo');
有没有一种方法可以将元数据添加到文件夹以指示我创建了它(哪个用户创建了它,或其他一些元数据)。我将如何使用 bash 或 node.js 读取该元数据?
【问题讨论】:
标签: node.js linux bash unix mkdir
如果我像这样创建一个目录:
mkdir foo
或使用 node.js
fs.mkdirSync('foo');
有没有一种方法可以将元数据添加到文件夹以指示我创建了它(哪个用户创建了它,或其他一些元数据)。我将如何使用 bash 或 node.js 读取该元数据?
【问题讨论】:
标签: node.js linux bash unix mkdir
没有。唯一与用户相关的元数据是目录的所有者(当您创建它时将是您的用户,但可以通过 chown 命令更改)。
mkdir abc
ls -la
> drwxr-xr-x 2 jerric ORG\Domain Users 64 May 2 11:51 abc
jerric 是创建目录的用户名。
【讨论】:
stat 来检索元数据,在 node.js 中 fs.stat
在 Linux 上,您可以将自定义元数据添加为 extended attributes 文件,前提是如果您没有 CAP_SYS_ADMIN 功能(~ 如果您不是 root),则将它们放在 user.* 命名空间中:
$ setfattr -n user.foobar -v quux file
$ getfattr -n user.foobar file
# file: file
user.foobar="quux"
我没有使用node.js,但您应该寻找listxattr()、setxattr()、getxattr()、removexattr() 命名垫片——那些(以及它们的l* 和f* 变体)是扩展属性的系统调用接口。
【讨论】:
xattr 命令而不是 setfattr 存在相同的基本系统。