Node.js确定符号链接指向的路径

8
注意:使用 Node.js 8
我有一系列符号链接: a -> b -> c
我需要将初始符号链接 a 解析为其目标目的地 b。如何在 Node.js 中实现此功能?
fs.realpath 函数解析符号链接链,因此将 a 解析为 c。这不是期望的行为。
我还尝试找到一个 npm 包来完成这个任务,但到目前为止没有什么运气。
我以为可以通过 fs.open 符号链接并读取其中的内容,但我无法访问文档中记录的 fs.constants.O_SYMLINK 常量,可能是因为我使用的是 Node 8。

Node 8 文档还列出了 fs.constants.O_SYMLINK。有什么需要弄清楚的吗?如果你在 REPL 中键入它,它不会给你一个数字值吗? - Patrick Roberts
不,fs.constants.O_SYMLINK 未定义。 - rich remer
node -v 输出什么? - Patrick Roberts
node -v outputs v8.10.0 - rich remer
1个回答

14

我搜索了 Node.js 文档中的单词 "symlink",但是文档中只将其称为 "link"。解决方法是使用 fs.readlink()

const {readlink} = require("fs");

fs.readlink("a", (err, target) => {
    if (!err) console.log(target);    // prints "b"
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接