硬链接

从Windows  NT4开始,NTFS文件系统引入了HardLink这个概念,它让一个文件可以拥有多个访问路径。

如上图,左边为链接,右边为真正的文件。删除链接并不会删除源数据文件。

示例,为一个文件创建三个硬链接:

示例,删除创建的三个硬链接:

硬链接的优点:
*兼容性好
*盘符被更改也不会受影响
*无需管理员的权限

硬链接的缺点:
*必须在同一个分区
*仅支持本地驱动器
*不支持为文件夹创建硬链接

初级软链接

到了Windows2000,引入了Junction 链接方式,又叫初级的软链接,它属于软链接类型。可实现为一个文件夹创建多个链接。

如上图:
App1访问CoolData文件夹时,系统会重定向到“真实的文件夹”,App2和Debug中也一样。当App1文件夹中的CoolData文件夹内容被更改了,App2和Debug中的内容也会随之更改,但是访问者不知道,他们访问的三个其实都不是真正的“真实文件夹”。

创建初级软链接的命令格式为:mklink /J

Junction 链接的优点:
*兼容性还好
*支持文件夹操作
*支持跨分区
*无需管理员权限

Junction 链接的缺点:
*不支持相对路径
*盘符被更改会受影响
*不可指向文件/远程SMB网络路径

软链接

Symbolic Link又被叫做符号链接和Soft Link(软链接)。是在Vista之后才有的,可以说是Junction链接的增强版,软连接可以支持任何路径,包括文件和不存在的路径,支持相对路径,支持跨文件系统。
Symbolic Link功能强大,但是使用的时候能避免则尽量避免,因为其兼容性很差。

创建初级软链接的命令格式为:mklink /D

在windows server 服务器上面挂在阿里云nas之后,使用初级软连接无法将nas 的挂在点链接到硬盘的文件夹,必须使用软链接才可以。

Windows中链接的删除:

在Windows自带DOS命令窗口中键入“mklink h”,查看帮助信息:

删除的命令:

rmdir 链接名称
例如:rmdir d:\recivefiles rmdir d:\develop

删除虚拟链接目录,并不会删除真实文件,注意,不能使用del命令,del命令会删除真实文件

Windows下mklink使用,   硬链接, 软链接和快捷方式的区别

mklink是windows系统下创建符号链接和硬链接的命令工具,它是一个很好的解决文件系统问题的工具。使用它需要管理员权限。

首先,先来介绍下mklink这个命令,可以看下下面的截图:

mklink
创建符号链接。
MKLINK [[/D] | [/H] | [/J]] Link Target
        /D      创建目录符号链接。默认为文件
                符号链接。
        /H      创建硬链接而非符号链接。
        /J      创建目录联接。
        Link    指定新的符号链接名称。
        Target  指定新链接引用的路径
                (相对或绝对)。

说明也已经很详细了,我们直接看下面例子吧。

下面的图片向我们展示了在windows系统中创建符号链接,硬链接和快捷方式有什么不同。

符号链接(Symbolic link)

执行命令 mklink link_name target_name
创建链接后的图标和快捷方式很像, 都有一个箭头的标志
在系统中不占用空间
在文件系统中不是一个单独的文件
在操作系统层解析(!?)
如果源文件被删除了,链接就没用了
移除源文件不会影响符号链接
移除链接文件也不会影响源文件
win10_x64_build10565上测试不可以右键修改图标和设置管理员运行
文件大小为0字节和不占用空间
文件属性的创建时间和修改时间都是软链接创建和修改时的时间
文件类型是.SYMLINK
可以在cmd下运行软链接(假如链接的是程序, 且运行命令是XXX即可)(win10_x64_build10565上测试通过)
硬链接(Hard link)

执行命令 mklink /H link_name target_name
在系统中占用的空间与源文件相同,但在系统中引用的是相同的对象(不是拷贝)
在操作系统层解析(!?)
图标和创建快捷方式的图标不同(没有快捷方式的小箭头)
移除源文件不会影响硬链接
移除硬链接不会影响源文件
如果源文件被删除,它的内容依然通过硬链接存在
硬链接文件的任何更改都会影响到源文件
文件大小, 占用空间, 创建和修改时间跟原原文件一样
可以在cmd下运行硬连接(假如链接的是程序)
快捷方式(Shortcut)

在选择的源文件上鼠标右键,通过下拉菜单创建
快捷方式在系统中跟源文件是完全分离的
只有那些懂得快捷方式的程序知道它们
如果源文件删除,链接就没用了
移除源文件不会移除快捷方式
移除快捷方式不会影响到源文件
可以右键更改图标或者设置管理员运行
文件属性的创建时间和修改时间都是快捷方式创建和修改时的时间
文件大小仅有几百字节, 跟原文件大小无关
文件类型是.lnk
可以在cmd下运行快捷方式(假如链接的是程序, 且运行命令是XXX.LNK)(win10_x64_build10565上测试通过)

//

//
//

mklink 硬链接和符号链接的区别

硬链接只能用于文件,不能用于文件夹,而且硬链接和目标文件必须在同一个分区或者卷中。硬链接的目的是为了给文件创建多个目录路径,而不像符号链接是为了指向某个已有的文件。

假设要给Target. txt文件创建一个硬链接,系统下载可以执行以下命令:

mklink/H Link.txt Target.txt

和符号链接一样,硬链接中所做的任何修改,都会自动应用到目标文件上。但是硬链接具有以下一些不同的地方。

(1)硬链接必须引用同一个分区或者卷中的文件,而符号链接可以指向不同分区或者共享文件夹上的文件或者文件夹。

(2) 硬链接只能引用文件,而符号链接可以引用文件或者文件夹。

(3)Windows会自动维护硬链接,即使把硬链接复制到其他文件夹,硬链接和目标都可以继续访问。

(4)删除目标文件,硬链接可以继续保留。只有把目标文件和所有的硬链接都删除,才能把该文件彻底删除。

(5)如果win7把符号链接的目标文件删除,然后用一个同名文件替换,则符号链接会指向新的目标文件;而把硬链接的目标文件删除’再用同名文件替换,则硬链接还是会继续引用原始文件。

(6)也就是说,硬链接和目标文件的地位相等。事实上,原始的目标文件本身也相当于硬链接,新建硬链接,只是相当于增加一个目录路後而已。

(7)硬链接看上去和真的文件一模一样(实际上就是真实的文件),不像符号链接那样有一个快捷方式的小箭头,但是硬链接并不会增加磁盘空间的占用。

(8)对硬链接进行NTFS权限的修改,会同时影响到目标文件(因为两者等价),而符号链接和目标文件可以设置不同的NTFS权限。

//

//
//

mklink /D和/J的区别
目录符号链接和目录联接(看原文即目录的硬链接)的区别在于:

目录联接在创建时会自动引用目标目录的绝对路径,而符号链接允许相对路径的引用。

如分别用 mklink /D dira tdir 和 mklink /J dirb tdir 创建 dira、dirb 对相对目录的 tdir 的符号链接和目录联接,之后将 dira、dirb 移动到其它目录下,则访问 dira 时会提示“位置不可用”,访问 dirb 时仍然正常指向 tdir;

且win10_x64_build10565的cmd下dir命令查看会发现, dira符号链接(软链接)链接到的是相对路径下的tdir文件(不管是否存在tdir文件), 且文件类型是symlink, dirb目录联接则链接到绝对(全)路径下的tdir文件, 且文件类型是junction(可能是系统自动把相对路径转换为全路径)

而分别用 mklink /D dira c:\demo\tdir 和 mklink /J dirb c:\demo\tdir 创建 c:\demo\tdir 的符号链接和目录联接,再将这两个目录链接移动到其它目录下,则 dira 和 dirb 均可正常指向 c:\demo\tdir;

由此可见当创建目录链接时对目标目录使用绝对路径,D 和 J 两个参数实现的目录链接效果是一样的;

英文原文:

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.

/D creates a symbolic link, or a soft link.This essentially acts like a shortcut to a folder in prior versions of Windows, except you don’t have to use an actual shortcut.

/H creates a hard link, which points directly to the file.This option can’t be used for folders directly for some reason, you’ll have to use the next option.

/J creates a “Directory Junction”A Directory Junction is actually just a hard link to a directory. This is a feature that existed prior to Vista as well. If you are trying to symlink to a directory using a hard link, then you should use this option.

Understanding Hard vs Soft Links================================Hard Link

A hard link directly points to the file, and acts to the operating system as if it is the file itself. You’ll want to use this option the majority of the time if you are trying to fake an application’s directory.

Soft Link

A soft link is essentially a shortcut to a file or folder – if you are using Windows explorer, you’ll be redirected to the directory if you double-click on a shortcut, it won’t pretend its part of the filesystem. You can still directly reference or open a file with the symlinked path, and it mostly works.

XX
————————————————
版权声明:本文为CSDN博主「guyue35」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/guyue35/article/details/49761347

Windows中的硬链接和软链接:相关推荐

  1. 浅谈linux中的硬链接和软链接文件以及ln的使用方法

    在linux系统中有一种文件叫做链接文件,可以为解决文件的共享使用.链接的方式可以分为两种,一种是硬链接(Hard Link),另一种是软链接或者也称为符号链接(Symbolic Link). 一.基 ...

  2. linux硬链接同步文件夹,linux中的硬链接和软链接

    一.ln命令概述 它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上 ...

  3. Linux中的硬链接和软链接

    1.Linux链接概念 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接. [硬连接] 硬连接指通过索引 ...

  4. 葵司JAVA25_Linux中的硬链接和软链接

    Linux中的文件有两种数据: 用户数据 元数据(metadata) 用户数据就是数据block. 元数据包含inode.用户名.时间,大小等信息. 其中inode是文件的唯一标识. //创建一个硬链 ...

  5. 认识Linux系统中的inode,硬链接和软链接

    在学习和创建软链接遇到了一点问题,总结一下: 在当前文件夹下面建立了两个临时文件夹tempdir1和tempdir2,然后在tempdir2里面创建了一个hello文件,然后用指令ln -s temp ...

  6. 实例讲解Linux系统中硬链接与软链接的创建

    导读 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接.硬链接与软链接的区别从根本上要从Inode节点说 ...

  7. 【Linux原理】Linux中硬链接和软链接的区别和联系

    作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 首先要弄清楚,在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的 ...

  8. Linux 系统的硬链接和软链接详解

    文章目录 什么是链接 链接用来干什么的 硬链接和软链接的区别 硬链接和软链接的图示 总结 我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 ...

  9. yfan.qiu linux硬链接与软链接

    http://www.cnblogs.com/yfanqiu/archive/2012/06/11/2545556.html Linux 系统中有软链接和硬链接两种特殊的"文件". ...

最新文章

  1. 东北师大计算机考研报名人数,东北师范大学考研难吗?一般要什么水平才可以进入?...
  2. 深度学习三巨头也成了大眼萌,这个一键转换动画电影形象的网站竟因「太火」而下线...
  3. java高淇_高淇java300集JAVA常用类作业
  4. php过滤数据库就报错,php过滤掉emoji等无法存入MySQL数据库的字符简单示例
  5. 【错误记录】Ubuntu 安装 Linux 内核后需要重新安装 VMware Tools 软件进行兼容操作
  6. Discrete Log Algorithms :Baby-step giant-step
  7. vue create()获取ref_vue-next+typescript 初体验
  8. odoo10参考系列--视图二(表单视图)
  9. 学计算机是为了什么演讲稿,求大学计算机协会职位申请书和演讲稿
  10. Pandas系列(六)SettingWithCopyWarning报警
  11. Klevgrand DAW Cassette for Mac(磁带模拟效果器插件)
  12. 怎么判断间隙过渡过盈配合_圆柱销有2个标准,选型注意材料和热处理,特别是销孔的配合关系...
  13. 手动实现读写锁(线程级)
  14. 优云软件又双叒通过CMMI ML3评估 , 研发和质量管理水平创新高
  15. 网络时代课堂教学模式整合的探索
  16. 电信光猫-华为HG8245C获取超级管理员密码
  17. 深度学习目标检测模型的评价标准-AP与mAP
  18. YARN 作业执行流程
  19. QT—常用容器 QStringList,QVector,QMap,QHash,QVariant
  20. 卡在DSMOS has arrived的解决办法

热门文章

  1. SDL 开发实战(五): SDL 纹理渲染
  2. excel打开csv后空白解决方法
  3. miaov-数据类型转换
  4. 计算机用户没密码怎么访问,win10 无法访问不带密码的win10 电脑共享的文件夹
  5. SystemVerilog中$sformat和$formatf的用法
  6. 证券从业考试考试技巧
  7. 搭建wiki知识库快速搭建PHPWind论坛系统
  8. 解决服务器自动死机的问题
  9. mysql忘记密码的三种解决方案
  10. Centos6 安装RepoForge(又叫RPMForge)