Zhonghui

每个不曾起舞的日子,都是对生命的辜负

User Tools

Site Tools


软件:windows:链接

在Windows上使用链接

为文件创建链接

# 正确的做法
# 基础格式就是mklink [Link] [Source]
C:\Data\Git>mklink Token_link.txt Token.txt
symbolic link created for Token_link.txt <<===>> Token.txt
# 创建的链接可以直接打开

# 错误的做法
# 为文件创建链接的时候加上了/D参数,虽然不会报错,但是创建的链接不能用
C:\Data\Git>mklink /D Token_link.txt Token.txt
symbolic link created for Token_link.txt <<===>> Token.txt
# 创建的链接是无法打开的
C:\Data\Git>code Token_link.txt

为目录创建链接

这里创建的叫做:符号链接,和后面的桥接区分开来

# 正确的做法
# 应该加上/D参数
C:\Data\Git>mklink /D UnityTools_link UnityTools
symbolic link created for UnityTools_link <<===>> UnityTools
# 这样创建的链接才是可以使用的
C:\Data\Git>cd UnityTools_link
# 进入这个链接,你会发现路径居然是链接的名称,和快捷方式不同
C:\Data\Git\UnityTools_link>

# 错误的做法
# 没有加/D参数,也是不会报错,但是不能使用
C:\Data\Git>mklink UnityTools_link UnityTools
symbolic link created for UnityTools_link <<===>> UnityTools

关于创建的链接:使用dir的时候,可以看到链接被显示为<SYMLINK>,并且后面标记了源路径(相对路径)

C:\Data\Git>dir
 Volume in drive C has no label.
 Volume Serial Number is B47F-32C0

 Directory of C:\Data\Git

12/28/2022  12:38 AM    <DIR>          .
11/13/2022  12:49 PM    <DIR>          ..
12/20/2022  10:58 PM                40 Token.txt
12/28/2022  12:38 AM    <SYMLINK>      Token_link.txt [Token.txt]
12/25/2022  05:05 PM    <DIR>          UnityTools
12/28/2022  12:38 AM    <SYMLINK>      UnityTools_link [UnityTools]
               3 File(s)             40 bytes
               3 Dir(s)  107,072,294,912 bytes free

为文件创建硬链接

这一段可能有错误,待检查
使用/H参数,注意不能对目录使用

# 报错,源目标是目录
C:\Data\Git>mklink /H /D UnityTools_link UnityTools
The syntax of the command is incorrect.
# 报错,源目标是目录
C:\Data\Git>mklink /H UnityTools_link UnityTools
The syntax of the command is incorrect.

为目录创建桥接

使用/J参数,应该对目录使用,对文件使用不会报错,但是创建的桥接不能使用

# 创建桥接
C:\Data\Git>mklink /J UnityTools_link UnityTools
Junction created for UnityTools_link <<===>> UnityTools
# 可以通过桥接访问
C:\Data\Git>cd UnityTools_link
# 注意桥接的文件类型,被显示为<JUNCTION>,并且后面有源目录的绝对路径
C:\Data\Git\UnityTools_link>dir ..
 Volume in drive C has no label.
 Volume Serial Number is B47F-32C0

 Directory of C:\Data\Git

12/28/2022  12:59 AM    <DIR>          .
11/13/2022  12:49 PM    <DIR>          ..
12/20/2022  10:58 PM                40 Token.txt
12/25/2022  05:05 PM    <DIR>          UnityTools
12/28/2022  12:59 AM    <JUNCTION>     UnityTools_link [C:\Data\Git\UnityTools]
               1 File(s)             40 bytes
               4 Dir(s)  107,035,672,576 bytes free

快捷方式

在右键菜单中创建,快捷方式是一种特有的文件格式,就是一个文件而已

补充内容

问题:什么是软链接(符号链接)?什么是硬链接?二者的关系是什么?在系统层级的区别?

注意:删除链接的时候,就需要小心一点了,特别是目录

注意:用不同方式创建的链接,在Windows的文件管理器里面显示的图标是不同的,可以观察一下区别~

参考:符号链接桥接的区别(/D和/J)

  • /J 建立目录的 JUNCTION; /D 建立目录的符号链接。
  • JUNCTION 必须是本机的目录;符号链接可以链接网络上的资源。
  • JUNCTION 建立时可以用相对路径,但记录的是绝对路径;符号链接建立时可以用相对路径,记录的也是相对路径。
  • 移动、更名、删除 target 目录时,JUNCTION 失效;符号链接也失效。
  • 移动、更名 target 的上 n 级目录时,JUNCTION 失效;符号链接视情况可能失效(相对路径情况可能不失效)。
  • 权限方面,JUNCTION 的权限和 target 相同;符号链接的权限可以单独设置。
  • 删除 JUNCTION,target 不受影响;删除符号链接,target 也不受影响。
/var/www/DokuWikiStick/dokuwiki/data/pages/软件/windows/链接.txt · Last modified: 2023/05/20 00:09 by zh