【问题标题】:How to add metadata to a folder on mac/linux如何将元数据添加到 mac/linux 上的文件夹
【发布时间】:2019-09-21 06:49:00
【问题描述】:

如果我像这样创建一个目录:

mkdir foo

或使用 node.js

fs.mkdirSync('foo');

有没有一种方法可以将元数据添加到文件夹以指示我创建了它(哪个用户创建了它,或其他一些元数据)。我将如何使用 bash 或 node.js 读取该元数据?

【问题讨论】:

    标签: node.js linux bash unix mkdir


    【解决方案1】:

    没有。唯一与用户相关的元数据是目录的所有者(当您创建它时将是您的用户,但可以通过 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
    【解决方案2】:

    在 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* 变体)是扩展属性的系统调用接口。

    【讨论】:

    • 只是为了处理问题的另一半(第三个?):在 Mac 上,使用 xattr 命令而不是 setfattr 存在相同的基本系统。
    猜你喜欢
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-14
    • 2014-01-20
    • 1970-01-01
    相关资源
    最近更新 更多