Mac上使用ln指令创建软链接、硬链接

在Mac、Linux和Unix系统中,软连接(Symbolic Link)和硬连接(Hard Link)是两种不同的文件链接方式。它们的主要区别如下:

区别:

  • 硬连接
    • 不能跨文件系统。
    • 不能链接目录(为了防止循环)。
    • 删除原文件时,硬连接仍然有效,文件内容不会丢失,直到所有硬连接都被删除。
    • 占磁盘空间;
  • 软连接
    • 可以跨文件系统。
    • 可以链接目录。
    • 删除原文件时,软连接会失效,变成悬挂链接(dangling link)。
    • 一种快捷方式,不占磁盘内存空间;

相同点:

  • 指向的都是同一块内存地址;

使用Mac创建命令

  • 硬连接 :使用 ln 命令创建:

bash 复制代码
ln source_file hard_link

软连接 :使用 ln -s 命令创建:
*

bash 复制代码
ln -s source_file soft_link

windows可以使用mklink,这里不再赘述。

举个实际的例子:

bash 复制代码
// 现在有一个index.js文件, 里面的信息是console.log(111)

// 创建硬链接
ln index.js hard_index.js

// 创建软链接
ln index.js soft_index.js

当3个文件中的任何一个代码发生改变,其他2个文件都会同步,自己可以尝试下;

如果index.js文件删除,硬链接没有影响,软连接会马上失效;

软链接和硬链接的主要作用是:有效地节省磁盘空间

实际运用例子:pnpm -> pnpm官网

推荐学习视频:前置知识-pnpm 底层原理 + monorepo架构_哔哩哔哩_bilibili

相关推荐
触底反弹1 分钟前
🔥 React 零基础入门(中):500 行屎山代码到组件化的蜕变
前端·javascript·react.js
不好听6132 分钟前
React vs Vue:两大前端框架技术选型深度对比
前端·vue.js·react.js
GuWenyue3 分钟前
Cursor黑盒拆解!1套LangChain.js手写Mini编程Agent,自动生成React项目,效率提升60%
前端·数据库·人工智能
GuWenyue3 分钟前
传统Agent工具两大痛点!300行代码落地MCP跨语言工具,彻底解耦LLM与工具
前端·人工智能·算法
优橙教育10 分钟前
5G网优培训 vs Java开发:转行选哪个?
java·开发语言·5g
小林ixn1 小时前
从 onclick 到 React 合成事件,再到完整应用逻辑:一次前端架构的深度剖析
前端·react.js·前端框架
Csvn2 小时前
🧩「找不到模块」排查全记录——Monorepo 下 TypeScript 路径别名的 5 种「不通」与根治方案
前端
腻害兔2 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:字典、短信、邮件、通知——后台系统的“基础设施四件套“!
java·前端·vue.js·产品经理·ai编程
SeaTunnel2 小时前
从 Python Script 地狱到标准化数据集成框架
大数据·开发语言·python·程序员·代码·seatunnel
CodexDave2 小时前
MySQL事务隔离级别与MVCC机制解析
前端·数据库·mysql·nginx·性能优化·负载均衡