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

相关推荐
Eloudy10 小时前
ReAct 原理简介
前端·javascript·人工智能·react.js·agent·gpu
小努蛋10 小时前
linux编译openresty异常问题,lua_cjson.c:706:5: 错误: ‘for‘ 循环初始化声明只在 C99 或 C++ 模式下允许
开发语言·lua·openresty
qz_Serene10 小时前
C++:类和对象(上)
开发语言·c++
西安景驰电子10 小时前
《PTP精确时间协议系列》第一篇:从原理到应用,全面解读IEEE 1588
linux·运维·服务器·开发语言·网络·windows·php
ctlover11 小时前
Python文件操作
开发语言·python
luj_176811 小时前
塔防牌:策略与卡牌的智慧碰撞
服务器·c语言·开发语言·经验分享·算法
ZJU_统一阿萨姆11 小时前
【DSH】如何将 DeepSeek Harness 嵌入生产环境?万字解构 DeepSeek Agent Harness 的运行机制与安全边界
前端·javascript·安全
用户9210802628611 小时前
4. 前端地图大量点位实时更新优化:后端推增量,前端做 diff
前端
wuyk55511 小时前
3.链表:用指针串联的动态数据结构
c语言·开发语言·数据结构·链表
SoaringHeart11 小时前
Flutter最佳实践:Web项目中文字体首次加载乱码问题解决
前端·flutter