在win7 CMD窗口下输入mklink,会得到如下提示
C:\Users\walker>mklink /?Creates a symbolic link.
MKLINK [[/D] | [/H] | [/J]] Link Target
/D Creates a directory symbolic link. Default is a file symbolic link.
/H Creates a hard link instead of a symbolic link.
/J Creates a Directory Junction.
Link specifies the new symbolic link name.
Target specifies the path (relative or absolute) that the new link refers to.
那么/d, /h, /j 到底有什么区别呢?以下是测试
1,建立测试文件夹source,并以管理员身份打开cmd,cd到source的父目录
2,用mklink /d used source建立一个目录,used是创建的目录名
3,用mklink /j usej source建立一个目录,usej是创建的目录名
4,查看生成的两个文件夹,发现用/d生成的是一个快捷方式,用/j生成的是junction目录,但是在win7下都是快捷方式图标
5,分别在生成的两个文件夹里增/删文件,三个文件夹均能看到同步改动
6,删除used,源文件夹和usej均无反应,重新用mklink添加回来
7,删除jsej,源文件夹和jsed均无反应,测试结束
对比,在xp下用junction生成的目录你删除是会把源目录删除掉的,万一用户没理解到这一点,把新文件夹删掉,就等着后悔吧。要安全移除,得用junction -d的参数才会只删除junction出来的目录而实验证明,在win7下,源目录始终都是安全的
此外,单独列出/h,mklink /h useh source,提示access denied, 那我就不找原因了。