【小白笔记】符号链接

不用把模型目录拷贝一份到 OpenAvatarChat 里,而是"指个路"。用符号链接把已有的 Wan2.2 模型目录挂到 OpenAvatarChat 期望的位置。

在你的环境里,Wan2.2 模型在 /data/Avatar/Wan2.2/Wan2.2-S2V-14B,OpenAvatarChat 期待在 OpenAvatarChat/models/Wan2.2-S2V-14B 找到它。创建链接即可:

  • 创建父目录(若不存在)并建立符号链接
bash 复制代码
mkdir -p /data/Avatar/OpenAvatarChat/models
ln -s /data/Avatar/Wan2.2/Wan2.2-S2V-14B /data/Avatar/OpenAvatarChat/models/Wan2.2-S2V-14B
  • 查看是否成功
bash 复制代码
ls -l /data/Avatar/OpenAvatarChat/models/Wan2.2-S2V-14B
  • 如果目标位置已存在且需要重建链接,先删再建
bash 复制代码
rm -rf /data/Avatar/OpenAvatarChat/models/Wan2.2-S2V-14B
ln -s /data/Avatar/Wan2.2/Wan2.2-S2V-14B /data/Avatar/OpenAvatarChat/models/Wan2.2-S2V-14B

注意:

  • 上述是 Linux 命令;Windows 下等价做法是用 mklink(需要管理员 CMD):
bat 复制代码
mklink /D "C:\path\to\OpenAvatarChat\models\Wan2.2-S2V-14B" "C:\path\to\Wan2.2\Wan2.2-S2V-14B"

这样 OpenAvatarChat 访问 models/Wan2.2-S2V-14B 时,实际会读取 /data/Avatar/Wan2.2/Wan2.2-S2V-14B 的内容,避免重复占用磁盘。

详细解释

ln -sf /data/Avatar/Wan2.2/Wan2.2-S2V-14B ./models/Wan2.2-S2V-14B

  • ln创建链接的命令,类似于 Windows 中的快捷方式。
  • -s 参数表示创建软链接symbolic link)。
  • -f 参数表示强制force),如果目标链接已经存在,会先删除它再创建新的。

当您第一次运行这个命令时,它会在 ./models/ 目录下创建一个名为 Wan2.2-S2V-14B 的软链接,这个链接指向 /data/Avatar/Wan2.2/Wan2.2-S2V-14B 这个真实的模型目录。

一旦链接建立成功,它就会一直存在,除非您手动删除它。 脚本或程序在后续运行时,会通过这个软链接找到并访问 /data 目录下的真实模型文件,就像文件就在 ./models 目录里一样。

因此,您不需要 每次运行脚本前都重复执行这个 ln 命令。它是一个一次性的设置步骤,旨在解决您的磁盘空间问题,并确保程序能够正确找到模型文件。

只有在以下两种情况下您可能需要重新执行这个命令:

  1. 您不小心删除了 models/Wan2.2-S2V-14B 这个软链接。
  2. 您需要将链接指向一个不同的模型目录。

在正常使用情况下,建立一次即可。

补充:

符号链接(Symbolic Link),也叫软链接(Soft Link),是 Linux 和其他类 Unix 系统中的一个非常重要的概念,其功能类似于 Windows 系统中的快捷方式


符号链接的本质

符号链接本身是一个特殊的文件,它不存储数据本身,而是存储另一个文件或目录的路径。当你访问这个符号链接时,操作系统会自动将你重定向到它所指向的真实文件或目录。

你可以把它想象成一个路标。这个路标(符号链接)告诉操作系统:"嘿,如果你想找某个文件,请去跟着这条路走,它在另一个地方。"

符号链接与硬链接的区别

了解符号链接,就不得不提一下硬链接(Hard Link),它们是两种不同的链接方式。

特性 符号链接(Symbolic Link / Soft Link) 硬链接(Hard Link)
存储内容 存储目标文件或目录的路径 存储目标文件的inode(文件元数据)编号
跨分区 可以。它可以链接到不同分区的文件或目录 不能。只能在同一个文件系统分区内创建
指向目录 可以。可以指向目录 不能。只能指向文件
独立性 不独立。如果删除源文件,链接会失效(变成"死链接") 独立。删除源文件后,硬链接仍然有效,数据不会丢失
文件大小 文件大小通常非常小,只存储路径字符串 与源文件大小完全相同

用一个简单的比喻:

  • 硬链接就像一个文件的"别名"或"分身"。它们共享同一块数据,无论你通过哪个名字访问,都是在操作同一份数据。只有当所有硬链接都被删除后,文件的数据块才会被真正释放。
  • 符号链接则像一个"快捷方式"。它只是一个指向真实文件的指针。如果原始文件被删除,快捷方式就会失效。

符号链接的实际应用

符号链接在系统管理和日常使用中非常有用,主要体现在以下几个方面:

  1. 节省空间:像您遇到的情况一样,当你的系统盘空间不足,但数据盘空间充裕时,可以通过符号链接将大文件或目录(比如模型缓存、大型项目文件)放到数据盘,然后在系统盘建立一个符号链接指向它,这样既能让程序正常工作,又不会占用宝贵的系统盘空间。
  2. 版本管理:在软件开发中,经常使用符号链接来指向最新版本的程序或库,这样在版本更新时,只需要更改链接的指向,而不需要修改所有依赖这个程序的脚本或配置。
  3. 简化路径:当一个文件或目录的路径非常长时,你可以创建一个简短的符号链接来方便访问。

总的来说,符号链接是 Linux 系统中一个强大且灵活的工具,它通过"引用"的方式,让文件和目录的管理更加高效和便捷。

相关推荐
xxxxxxllllllshi5 小时前
Java 代理模式深度解析:从静态到动态,从原理到实战
java·开发语言·笔记·算法·代理模式
汐汐咯5 小时前
Variational Quantum Eigensolver笔记
笔记
zhangrelay6 小时前
内卷式迷茫-当游戏沉迷与疯狂刷题成为“空心病”的双重面具-AI
笔记·学习
常州晟凯电子科技6 小时前
海思SS626开发笔记之环境搭建和SDK编译
人工智能·笔记·嵌入式硬件·物联网
崎岖Qiu6 小时前
【OS笔记04】:进程和线程2-进程控制
笔记·操作系统·os
悠哉悠哉愿意6 小时前
【ROS2学习笔记】URDF 机器人建模
笔记·学习·机器人·ros2
智者知已应修善业7 小时前
【51单片机32个灯,第一次亮1,2。第二次亮2,3。第三次亮3,4。。。。】2023-2-10
c语言·经验分享·笔记·嵌入式硬件·51单片机
nnerddboy7 小时前
QT(c++)开发自学笔记:1.串口
c++·笔记·qt
岑梓铭8 小时前
计算机网络第四章(10)——网络层《路由算法+路由协议》
网络·笔记·计算机网络·考研·智能路由器·408
YongCheng_Liang9 小时前
网络工程师笔记10-BGP协议
运维·网络·笔记