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

相关推荐
wuyk5552 小时前
104.C 语言字节对齐:从底层原理到工程实践的完整指南
c语言·开发语言·stm32·单片机·嵌入式硬件
君顾18 小时前
智慧零售实战指南:从技术架构到落地方案全解析
java·开发语言·零售
南棱笑笑生8 小时前
20260904实测给飞凌OK3576-C开发板刷入Rockchip原厂的IMG固件【使用飞凌的DTS】切换串口波特率为1.5Mbps
c语言·开发语言·rockchip
梦曦i8 小时前
@meng-xi/create-uni-app vs unibest:轻量脚手架与重型框架的定位之争
前端·uni-app
平头哥技术团队8 小时前
Day 10 | 工欲善其事:VS Code 配置与项目归档
android·开发语言·前端·javascript·html·交互
乌萨奇也要立志学C++8 小时前
【洛谷】kmp算法
开发语言·算法
传奇开心果编程9 小时前
【Rust入门知识点学与练】第4课:条件判断 if / else
开发语言·学习·rust
乌恩大侠9 小时前
GH200 新增 NVMe SSD 分区、格式化与挂载完整流程
运维·服务器·前端
m0_380743879 小时前
给 Claude API 调用补上超时重试和错误分类
开发语言·人工智能·php
yume_sibai9 小时前
Element Plus 数据展示组件完全指南(15个核心组件)
前端·javascript·vue.js