【mklink】创建符号链接
场景
我通常用这个指令将C盘的文件转移到D盘中,或者是把一定要安装在C盘的软件所占用的空间转移到D盘。但是常常不记得参数和顺序。
指令通用格式
C盘的文件转移到D盘中
假设要把
C:\abc\
这个文件夹转移到D:\Software\
下
直接把C:\abc\
这个文件夹剪切到D:\Software
下
打开cmd输入指令
mklink /d "C:\abc" "D:\Software\abc"
链接(不是链接位置)在前,实际文件夹在后
把一定要安装在C盘的软件所占用的空间转移到D盘
先照样把这个软件安装到C盘,然后对安装目录执行刚刚C盘的文件转移到D盘中的方法即可
总结三部
- 安装(如果是文件就不用)
- 整体剪切
- 在原位置创建链接
可能的报错
当文件已存在时,无法创建该文件
PS D:\Software> cmd /c mklink /d "D:\Software\Topaz Labs LLC" "C:\Program Files\Topaz Labs LLC"
当文件已存在时,无法创建该文件。
我怀疑你把两个地址写反了
拒绝访问
PS D:\Software> cmd /c mklink /d "C:\Program Files\Topaz Labs LLC" "D:\Software\Topaz Labs LLC"
拒绝访问。
右键win图标,点击终端管理员
完整参数表
| 链接类型 | 命令 | 文件类型 | 文件路径 | 空间占用 | 可连接类型 | 本质 | windows下可否跨磁盘 | 访问方式 | 源文件与链接文件关联关系 |
| ------------------ | ---- | ----------- | --------------- | ---------------------------------- | -------------- | ------------------------------------------------------------ | ------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
| 符号链接(软链接) | /d | .symlinkd | 相对路/绝对路径 | 不占 | 只能是目录 | 相当于只是对源目录进行了引用,可里解为:只有使用权,没有所有权,可以当作快捷方式 | 可以跨本地磁盘;也可跨网络磁盘(共享目录) | 本地访问:通过链接目录所在磁盘路径访问;网络访问:通过tomcat实现 | 源目录删除后,链接目录无效;链接目录删除,源目录不受影;源目录里面的文件发生变化时(新增、修改、删除),链接目录里面的文件同步发生变化;反之,同样成立 |
| 目录链接(软链接) | /j | .junction | 绝对路径 | 不占 | 只能是目录 | 同上,联接点 | 只能跨本地磁盘 | 同上 | 同上 |
| 硬链接 | /h | .源文件类型 | 绝对路径 | 占用空间跟原文件一样 | 只能是文件 | 相当于对源文件进行拷贝,可理解为:执行了复制、粘贴操作 | 不可以 | 本地访问:通过链接文件所在磁盘路径访问;网络访问:通过 tomcat可实现 | 源文件删除后,链接文件无效;链接文件删除,源文件不受影响;源文件内容发生变化时(修改),链接文件同步发生修改;反之,同样成立。 |
| 快捷方式 | | .lnk | 绝对路径 | 文件大小仅有几百节,跟原件大小无关 | 文件、目录均可 | | 只能跨本地磁盘 | 本地访问:自动跳转到文件、目录的所在磁盘路径访问;网络访问:无法通过网络访问到该快捷方式所对应的实际文件 | 源文件删除,快捷方式失效;快捷方式删除,源文件不受影响;只是创建了一个快捷方式 |
如何在powershell下使用
win11的打开终端默认打开的是powershell。
其实powershell下可以运行cmd指令,在指令前加上cmd /c
即可