软链接(符号链接)应用入门
2024-9-9 • 2min
最近有一个需求,需要研究实现一个简化的包管理器。
现代的包管理器,比如Go Modules
,Maven
都支持soft link(软链接)
,也称为symbolic link(符号链接)
。
软链接的就是将文件或文件夹映射到另一个位置,对映射文件的操作会同步到源文件上。
对包管理来说,这样做的好处是,不用多次拉取同一个依赖。
如果项目 A 和 B 都依赖 package alpha,那只需要拉取 alpha 到一个公共位置,再在 A 和 B 中分别创建一个软链接到这个位置即可。
shell
# Linux macOS
ln -s <target> <link name>
# Windows
mklink <link name> <target>
Go 语言控制软链接
Go 语言提供了os.Symlink
来操作软链接。
err := Symlink(oldname, newname)