📜  Node.js fs.promises.link() 方法(1)

📅  最后修改于: 2023-12-03 14:44:38.685000             🧑  作者: Mango

Node.js fs.promises.link() 方法

Node.js fs.promises.link() 方法是用于创建硬链接(同一文件的另一名称)的 API。它是 fs.promises 模块中的一个方法,返回一个 promise,表示操作是否完成。

语法
fs.promises.link(existingPath, newPath)

参数说明:

  • existingPath:源文件路径,可以是相对路径或绝对路径。
  • newPath:目标文件路径,可以是相对路径或绝对路径。
返回值

fs.promises.link() 方法返回一个 promise,当硬链接创建成功时会被 resolve,否则会被 reject。

示例

下面是一个简单的示例,展示了如何使用 fs.promises.link() 方法创建硬链接:

const fs = require('fs').promises;

async function createHardLink(existingPath, newPath) {
  try {
    await fs.link(existingPath, newPath);
    console.log(`Hard link created successfully from ${existingPath} to ${newPath}.`);
  } catch (error) {
    console.error(`Error creating hard link from ${existingPath} to ${newPath}: ${error.message}`);
  }
}

createHardLink('data/file1.txt', 'data/file1_hardlink.txt');

上述示例中,我们使用了 async/await 语法来等待 promise 的结果。如果硬链接创建成功,我们将在控制台输出一条成功消息,否则将输出一个错误消息。

注意事项
  • 使用 fs.promises.link() 方法创建硬链接时,目标文件(newPath)如果已存在,会抛出 EEXIST 错误。

  • 在 Windows 系统中,尝试在一个卷(volume)内创建一个文件的硬链接是不允许的,会抛出 EPERM 错误。

  • 在 macOS 和 BSD 系统中,只有超级用户(root)才能创建硬链接。

  • 硬链接不能跨越不同的文件系统(mount points)。如果源文件和目标文件在不同的文件系统上,会抛出 EXDEV 错误。

关于 Node.js fs.promises.link() 方法的更多信息,请参考 官方文档