硬链接和软链接

590 阅读1分钟

前言

写这篇文章的原因最近在做一些工程化相关的内容,有使用到 fs.symlink(target,path), 查看 Node.js 文档发现讲的一般!所以这里详细整理下,并且记得之前在 Linux 下直接使用命令创建软链,通过 ls -s source_file target_file 在想这两个参数位置有些怎么不一致呢?本文是我上一篇工程化系列文章中的一个小插曲,上篇文章 现代前端工程化-彻底搞懂基于 Monorepo 的 lerna 模块(从原理到实战) 有提到软链接,那篇没有对软硬链接没有进行详细讲解,只是简单介绍了 fs.symlink 中软链接创建的基本使用,本文进行详细展开下。

链接

链接简单说实际上是一种文件共享的方式,是 POSIX 中的概念,主流文件系统都支持链接文件。

硬链接

与普通文件没什么不同,inode 都指向同一个文件在硬盘中的区块。

软链接

保存了其代表的文件的绝对路径,是另外一种文件,在硬盘上有独立的区块,访问时替换自身路径。

软连接的创建应用场景还是比较广泛,比如 npm link 调试, leran 内部模块互相引用等等。

参考:

浅谈硬链接和软链接

npm link 打造高效的模块调试方式

使用 npm link 调试组件库(lerna 管理的)破坏了单例模式,该如何正确的处理呢?

“软链接”和“硬链接”的区别

Node.js 如何创建软连接,与硬链接区别是什么?

软链接&硬链接在前端中的应用