命令行如何建立符号链接(软链接) ?mklink / ln
发布于 作者:苏南大叔 来源:程序如此灵动~

软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。本文对于主流操作系统下,软链接的实现做个总结。
苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验总结。测试环境:win10@22h2
,mac@13.7.6
。在对符号文件进行读或写操作的时候,系统会自动把该操作转换为对源文件的操作,但删除链接文件时,系统仅仅删除链接文件,而不删除源文件本身。
windows mklink
在windows
环境下,也是可以生成软连接的(虽然很不常见)。可以用于在不影响软件功能的前提下,转移软件实体从系统盘到其它盘符。
例如:
mklink /d "c:\Servyou" "D:\tools2\Servyou"
这个操作和快捷链接很像,但是访问地址不变。
- 第一个参数是被创建的快捷方式,第二个参数是实际的文件存储地址。
- 第一个参数代表的位置,不能真实存在。否则就会报错。
- 无论第二个参数存在与否,都不会影响第一个参数代表的快捷方式的建立。
- 如果创建的是个目录的话,使用
/d
参数。
要是做文件的软连接的话,目前来看,和普通的快捷方式连接是一样的效果。参考命令:
mklink C:\link.txt d:\target.txt
mac ln
在类linux
的世界里面,都是使用ln -s
来实现软连接的。但是,参数和windows
下面顺序是完全相反的。比如:在/Users/sunan/data/
目录下,有个www
目录,想把它提上去一层。命令如下:
ln -s /Users/sunan/data/www/ /Users/sunan/
它等价于:
cd /Users/sunan/
ln -s /Users/sunan/data/www/
参考文章:
表格对比
系统 | 命令 | 第一个参数 | 第二个参数 |
---|---|---|---|
linux | ln -s | (已经存在)的原目标目录(文件) | 新的目标位置的【父位置】 (留空,当前目录即父位置) |
windows | mklink /d | 新的目标目录位置 | 原目录位置(不存在也可以) |
题外话:windows cmder ln
在windows
下,使用cmder
的豪华版的时候,也可以使用ln -s
命令。但是,却一直没有执行成功。暂定后续讨论。效果看上去是个命令执行的时候,复制的效果。所以,就暂时不推荐在windows
下使用ln -s
了。
参考文章:
结语
苏南大叔的更多文章,请点击:


