解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接)
通过 mklink 命令可以创建文件或文件夹的链接,而这种链接跟快捷方式是不一样的。然而我们还可能会遇到其使用过程中的一些坑,本文将整理这些坑并提供解决方法。
0x00 背景介绍:mklink
mklink
可以像创建快捷方式一样建立文件或文件夹的链接,但不同于快捷方式的是,mklink
创建的链接绝大多数程序都不会认为那是一个链接,而是一个实实在在的文件或文件夹。
例如,为 D:\OneDrive\Foo
文件夹创建链接到 D:\Foo
,那么 D:\OneDrive\Foo
中有一个 .git
文件时,绝大多数程序都会以为 D:\Foo
中也存在 .git
文件,而且文件内容一模一样。
mklink
可以创建符号链接、硬链接和目录链接。在 cmd
中输入 mklink
即可看到以下这样的帮助信息。
C:\Users\lvyi>mklink
创建符号链接。
MKLINK [[/D] | [/H] | [/J]] Link Target
/D 创建目录符号链接。默认为文件
符号链接。
/H 创建硬链接而非符号链接。
/J 创建目录联接。
Link 指定新的符号链接名称。
Target 指定新链接引用的路径
(相对或绝对)。
具体的使用不是本文的重点,可以阅读本文末尾的参考资料了解,这里只给出他们之间的大体区别。
使用方式 | 适用于 | 快捷方式小箭头 |
---|---|---|
不带参数 | 文件 | 有 |
/D | 文件夹 | 有 |
/J | 文件夹 | 有 |
/H | 文件 | 无 |
上面的表格顺序,从上到下的行为从越来越像快捷方式到越来越像两个独立的文件夹。
0x01 坑:PowerShell 中没有 mklink 命令
是的,PowerShell 中就是中没有 mklink 命令。如果要在 powershell 中使用 mklink,那么得先敲 cmd
进入 cmd
之后再使用 mklink
命令。
如果你是一个重度强迫症患者,那么可以编写一个 powershell 的扩展函数来实现:Creating a Symbolic Link using PowerShell - Learn Powershell - Achieve More。
0x02 坑:权限
默认我们的用户账户是 Administrators
组的,会继承它的权限设定。正常情况下,我们使用 mklink
是可以成功执行的。但如果文件系统的设置比较奇怪或者重装过系统,那么可能出现没有权限的错误。
C:\Users\lvyi>mklink /D D:\Foo D:\OneDrive\Foo
你没有足够的权限执行此操作。
这时,使用管理员权限启动 cmd
是最简单的做法。不过也可以考虑在 本地安全策略(secpol.msc)\本地策略\用户权利分配
中添加当前用户。
参考链接
- 活用 MKLINK 命令保护、节省你的硬盘 - SinoSky
- 关于mklink的/D /J 区别 - CSDN博客
- Creating a Symbolic Link using PowerShell - Learn Powershell - Achieve More
- win10 无法运行mklink命令同步onedrive和电脑数据 - Microsoft Community
- Win10下执行mklink提示你没有足够权限执行此操作 - CSDN博客
解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接)的更多相关文章
- Windows硬链接 软链接 符号链接 快捷方式
http://blog.nsfocus.net/shortcuthard-linkjunction-pointsymbolic-link/ Windows支持4种”链接”机制,分别是shortcut. ...
- WINDOWS 的 MKLINK : 硬链接,符号链接 : 文件符号链接, 目录符号链接 : 目录联接
玩转WIN7的MKLINK 引言: 换了新电脑,终于再次使用上啦WIN7 ,经过一个周每天重装N次系统,... ... ... ... 在xp系统下,junction命令要用微软开发的小程序 junc ...
- 转: linux文件链接(软链接和硬链接)
链接:一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法. Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(Symbolic l ...
- Unix硬链接和符号链接(转)
首先要弄清楚,在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号.文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文 ...
- UNIX环境编程学习笔记(10)——文件I/O之硬链接和符号链接
lienhua342014-09-15 1 文件系统数据结构 UNIX 文件系统通过 i 节点来存储文件的信息.如图 1 所示为一个磁盘柱面上的 i 节点和数据块示意图.其中 i 节点是一个固定长度的 ...
- javascript 解决默认取整的坑(目前已知的最佳解决方案)
javascript 解决默认取整的坑(目前已知的最佳解决方案) 复现该问题 js在数字操作时总会取更高精度的结果,例如1234/10结果就是123.4,但是在c或者java中整数除以10的结果还是整 ...
- 如何解决DEDE织梦友情链接字数限制与链接个数限制的问题?
如何解决DEDE织梦友情链接字数限制与链接个数限制的问题!织梦网站非常适合网站搭建以及网站优化,而友情链接是做优化必不可少的模块,我们经常搭建织梦网站发现织梦系统的友情链接模板有时候会限制字数不显示以 ...
- JQ绑定事件的叠加和解决,index()方法的坑
JQ绑定事件的叠加和解决,index()方法的坑 前言 在做过几个不大不小的项目后,发现技术这种东西,必须要多多实践,才能发现各种问题,理论的知识掌握的再好终究是纸上谈兵. 因此目前感觉有两点是必须要 ...
- 10.符号链接&创建链接
在我们到处查看时,我们可能会看到一个目录,列出像这样的一条信息: lrwxrwxrwx 1 root root 11 2007-08-11 07:34 libc.so.6 -> libc-2.6 ...
随机推荐
- Thinkphp5 模块的自动生成
首先到根目录下的build.php文件中去 是这样子滴: 然后去public目录中的index.php中去添加代码 这样子: 然后运行项目 就搞定了. 是不是美滋滋! 在public 下index.p ...
- iQuery移动端手势事件插件-jGestures
jGestures下载 jGestures事件简介 orientationchange 代表设备顺时针或者逆时针旋转.此事件可以被设备触发,可能使用的是重力传感器. pinch 缩放手势(两个手指在屏 ...
- 基于dapper的通用泛型分页
1.定义一个用来装载适合所有类的分页结果类 public class PageDataView<T> { private int _TotalNum; public PageDataVie ...
- IIS优化整理
IIS 之 在IIS7.IIS7.5中应用程序池最优配置方案 找到Web站点对应的应用程序池,“应用程序池” → 找到对应的“应用程序池” → 右键“高级设置...” 一.一般优化方案 1.基本设置 ...
- Sql Server 2008 清理日志文件
Use LingZhong Select NAME,size From sys.database_files ALTER DATABASE LingZhong SET RECOVERY SIMPLE ...
- shell数组中“和@的妙用
#!/bin/bashlist=(4k"8k a bit""16k abc""32k gold"64k)for i in "${l ...
- C++(二十九) — new 和 delete
1.基本用法,定义变量.数组.对象 class test { public: test(int a_, int b_) { a = a_; b = b_; cout << "构造 ...
- 利用PXE引导安装centos7
# 利用PXE引导安装centos7 # ###简介### > PXE (Pre-boot Execution Environment,PXE client 在网卡的 ROM 中,当计算机引导时 ...
- Python不同版本切换
2016年6月8日更新: 这是我早前写的一篇小文章,其实,后来也没有采用这种方法切换.电脑上安装了多个Python 版本,保证自己经常用的版本加入环境变量外,使用非系统的版本时一般使用 IDE 编辑器 ...
- 无密码登陆的ssh和ssh-agent
原文地址:http://lxshopping.blog.51cto.com/4542643/1179864/ 一,不需要输密码的ssh 原理:首先服务器端把公钥传给Client端,Client端在验证 ...