fs.link和fs.symlink有什么区别?它们是平台独立的吗?

Yan*_*hon 9 javascript symlink node.js

是什么区别fs.linkfs.symlink

我想以编程方式创建一个物理文件(或另一个符号链接)的符号链接,我在Linux上,但想知道是否有可能编写一个独立于操作系统的解决方案?有什么限制?

更新

从给定的答案和评论,Windows 似乎支持它.

Pau*_*aul 14

Linux系统有两种链接,硬链接和软链接.

fs.link()正在通过C系统调用创建硬链接link().从终端等同于ln originalName linkName.硬链接由引用同一文件的新目录条目组成.在列表中,它似乎是一个普通文件,就像原始文件一样.如果删除原始文件,则不会删除内容,并且硬链接仍然有效.只有删除所有硬链接时才会释放磁盘区域.

fs.symlink()正在创建软链接,即通过C系统调用的符号链接symlink().从终端的等效物是ln -s originalName linkName其中所述-s标签表示软/符号链接.软链接会创建一种指向另一个文件的特殊目录条目.列出它时它是指针的事实很明显,删除原始文件就足以删除内容,并使用链接中断.

我不在MS Windows上编码,但是这个符号链接指南表明有一个mklinkWindows命令shell命令可以创建hard(mklink /H)或soft(mklink /D)链接.Microsoft Developer's Network(MSDN)具有系统函数CreateSymbolicLinkCreateHardLink的条目,可以提供有关较低级别的更多信息.

在Mac上,developer.apple.com的ln页面显示他们ln在Mac OSX 10.9中拥有BSD版本的链接创建终端命令,支持硬链接和软链接.

  • 这适用于 Windows。 (2认同)