gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 03:47:57 27 4
gpt4 key购买 nike

fs.link 之间有什么区别?和 fs.symlink

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

更新

从给出的答案和评论来看,Windows 似乎支持它。

最佳答案

Linux系统有两种链接,硬链接(hard link)和软链接(soft link)。

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

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

我不在 MS Windows 上编写代码,但是 this guide on symbolic links表示有一个用于 Windows 命令外壳的 mklink 命令,可以创建硬 (mklink/H) 或软 (mklink/D ) 关联。 Microsoft Developer's Network -- MSDN -- 有系统函数条目 CreateSymbolicLinkCreateHardLink这可能会提供有关较低级别正在发生的事情的更多信息。

在 Mac 上,developer.apple.com's page for ln显示他们在 Mac OSX 10.9 中有 BSD 版本的 ln 链接创建终端命令,同时支持硬链接(hard link)和软链接(soft link)。

关于javascript - fs.link 和 fs.symlink 有什么区别?它们是平台独立的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26695726/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com