相对符号链接和绝对符号链接的区别
符号链接(又称 symlink)是一个不存储任何数据的文件,而是以绝对或相对路径的形式引用另一个文件或目录。严格来说,符号链接并不一定是一个文件,而是一个文件系统对象。符号链接不占用任何空间(0字节的空间占用),而是作为文件表中的特殊条目存在。符号链接在许多操作中的表现就像直接在目标文件上操作一样。在创建符号链接的过程中,类型与最终的符号链接相关联,用来访问目标。符号链接可以有两种类型:相对型和绝对型。在这篇文章中,我们将学习这两种类型的符号链接之间的区别,同时也将学习如何创建它们。
符号链接的类型
有两种类型的符号链接: 绝对符号链接 和 相对符号链接 。它们解释如下:
- 相对符号链接。
相对符号链接是一种符号链接,其目标是相对路径。相对路径是以当前工作目录为基础的路径。目标文件/文件夹的路径将根据符号链接的当前路径来计算。因此,没有明确的路径可言。因为路径总是根据符号链接的当前位置来计算的。例如,让我们假设一个符号链接(文件)的目标路径如下。
../downloads/小电影
上述符号链接是相对符号链接。原因是因为它有 ..
(双句点)在其路径中,用于表示文件管理器当前所在的目录的父级。这使得文件是动态的,因为文件可以在任何地方,但它会在其父目录中名为 downloads
的文件中查找目标文件。因此,目标路径将取决于文件的路径。
应该注意的是,双句点 ( ..
) 不是连续的两个句点,而是引用父目录的目录操作数。
创建相对符号链接:
为了在窗口上创建一个相对符号链接,将使用 mklink
命令。创建相对符号链接的语法如下:
mklink 新的连接名称 对应的连接目录
并且目标路径应该是相对的。在下面的示例中,将创建一个名为 newLink
的文件符号链接,其目标文件(名为 picture.jpg
)位于其父目录的一个子目录(名为 Bin)内。
C:> mklink newLink "../picture.jpg"
为了在Windows上创建符号链接,命令提示符(cmd)必须使用提升的权限执行
绝对符号链接
绝对符号链接是符号链接,其目标是绝对/完整路径。绝对路径是独立存在的路径,不依赖于当前工作目录。无论符号链接的位置如何,目标文件/文件夹的路径将始终相同。例如,假设符号链接(文件)具有以下目标路径。
C:/Program Files/Windows/geekdocs.txt
上述符号链接是绝对的符号链接。原因是因为它包含硬编码的目标路径。因此,无论符号链接的位置如何,对目标文件的查找将只针对一个路径。
创建绝对符号链接:
为了在Windows上创建绝对符号链接,将使用 mklink
命令。创建相对符号链接的语法如下:
mklink new_link_name full_target_pat
full_target_path
应该是目标文件的完整路径(包括驱动器说明符)。在下面的示例中,将创建一个名为 newYiibai
的文件符号链接.txt其目标文件位于位置 C:/Program Files/Windows/yiibai.txt
示例:
C:> mklink newYiibai "C:/Program Files/Windows/geekdocs.txt"
注意:符号链接的类型(相对/绝对)不依赖于提供源路径(full_target_pat)的方式。因此,可以根据偏好提供相对或绝对的新链接路径,因为它对符号链接的类型没有影响。它是目标路径,它是类型的决定因素。