符号链接– 也称为符号链接或软链接 – 可能是计算机用户最隐藏的概念之一。然而,这并不能消除它的重要性和它提供的好处。访问不同文件夹中的文件夹和文件而不维护重复副本怎么样?是的,这就是力量符号链接。
什么是符号链接或符号链接
符号链接是引用位于其他位置的物理文件或文件夹的快捷方式文件。符号链接充当虚拟文件或文件夹,可用于链接单个文件或文件夹,使它们看起来好像存储在带有符号链接的文件夹中,即使符号链接仅指向其真实位置。
不要将符号链接混淆为快捷方式
重要的是要了解符号链接不仅仅是 Windows 用户已经知道的快捷方式。快捷方式文件只是指向所需的文件,而符号链接将使链接的文件看起来像是实际存在的。单击符号链接后,您将被引导至实际文件位置。
符号链接的结构
符号链接是由操作系统自动解释并作为另一个文件或目录的路径的文本字符串构建的。这个其他文件或目录称为“目标”。
符号链接的存在与其目标无关。如果符号链接被删除,其目标不受影响。如果符号链接指向一个目标,并且稍后该目标被移动、重命名或删除,则符号链接不会自动更新或删除,而是继续存在并仍然指向旧目标。然而,这种指向已移动或不存在的目标的符号链接有时被称为损坏的、孤立的、死亡的或悬空的。
符号链接的好处
- 符号链接占用的空间非常少,并且创建速度非常快。使用符号链接可以节省大量硬盘空间
- 与硬链接相反,符号链接可以跨文件系统链接到文件。请记住,如果删除原始文件,硬链接仍然保持其活动状态,而符号链接则不会
- 符号链接维护包含符号链接的文件夹结构。例如,假设有一个TXT文件包含在“公用事业”文件夹位于/D/Myfolder/Utility/windowsclub.txt。现在如果符号链接为公用事业文件夹已在 Dropbox 文件夹中创建,您开始搜索windowsclub.txt在 Dropbox 文件夹中,文件路径为/D/Myfolder/Utility/windowsclub.txt而不是转换回原始/实际文件路径。
- 使用符号链接,您可以将媒体文件音乐/视频存储在另一个硬盘驱动器上,但使它们显示在您的标准音乐/视频文件夹中,以便您的媒体程序检测到它们
- 开发人员经常用引用物理文件/文件夹的符号链接替换共享文件/文件夹的重复副本。替换文件的冗余副本可以节省大量物理磁盘空间,并显着减少复制/备份/部署/克隆项目所需的时间。
符号链接在当今开发世界中的意义
正如 Microsoft 首席高级项目经理 Yosef Durr 在 Windows 博客上提到的那样,
许多流行的开发工具(例如 git)和包管理器(例如 npm)在创建存储库或包时分别识别并保留符号链接。当这些存储库或包在其他地方恢复时,符号链接也会恢复,确保磁盘空间(和用户的时间)不会被浪费。例如,Git 以及 GitHub 等网站已成为当今大多数开发人员使用的主要源代码管理工具。

近年来,包管理器在现代开发中的使用也呈爆炸式增长。例如,节点包管理器 (npm) 在 2015 年 7 月 1 日当周提供了约 4 亿次安装,但仅一年后就提供了超过 12 亿次安装 - 短短一年内就增加了 3 倍! 2016年6月下旬,npm在短短7天内服务了超过17亿个节点包!
尽管符号链接具有明显的优势,但它主要由 UNIX 兼容操作系统(如 Linux、FreeBSD、OSX 等)使用,在这些操作系统中可以不受限制地创建符号链接。对于 Windows 用户来说,虽然从 Windows Vista 开始就提供了符号链接,但创建起来既困难又乏味。
由于 Windows Vista 的安全要求,用户需要本地管理员权限,而且重要的是,必须运行链接在以管理员身份提升的命令行控制台中创建/修改符号链接。后一个限制导致大多数 Windows 开发人员很少使用符号链接,并导致许多现代跨平台开发工具在 Windows 上工作的效率和可靠性较低。
但是,现在在 Windows 10 或 Windows 11 上,一旦具有管理员权限的用户启用开发人员模式,PC 上的任何人都可以运行链接无需提升命令行控制台即可执行命令。
如何创建符号链接
可以使用以下命令创建符号链接mklink命令或创建符号链接 API。
你可以使在 Windows 中,使用命令行实用程序:链接。语法如下:
MKLINK [[ /D] | [ /H] | [ /J]] Link Target
在哪里 -
- /D:创建符号目录链接或软链接
- /H:创建到文件的硬链接而不是符号链接
- /J:创建目录连接链接
目标:指定新链接引用的路径。
例如,如果您希望从文件夹 D:\Maindata 中使用 d:\Data,请使用:
C:\mklink /DD:\Maindata D:\Data
现在,如果您现在查看 D:\Maindata,您将看到其他目录中的所有文件。 Linux 中一直都有此功能,但现在 Vista 中也提供了此功能。
使用 mklink 命令
使用时mklink命令,使用以下语法:
“mklink /prefix link_path file/folder_path”
注意:mklink 可以创建多种类型的链接。以下是类型 -
- /D 创建目录符号链接。默认是文件符号链接。
- /H 创建硬链接而不是符号链接。
- /J 创建目录连接。
例如,我创建了音乐文件夹到桌面的目录连接。请参阅下面的屏幕截图 -

因此,当我单击符号链接时,看起来我的音乐文件存储在C:\用户\<username> \桌面\音乐尽管它最初存在于C:\用户\<username> \音乐。

请记住,如果您的路径中有任何空格,那么您需要在其周围添加引号。
使用CreateSymbolicLink
要在使用 CreateSymbolicLink API 时启用新行为,需要添加一个附加项dw标志选项,您需要将值设置为:
SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE
0x2
因此,通过选择上述值,您已指定该标志以允许在进程未提升时创建符号链接。
要阅读有关如何使用创建符号链接的更多信息创建符号链接API,访问windows.com。
读:。
结论
可以说,符号链接比单纯的快捷方式更有用,但创建它们有点困难。普通 PC 用户可能仍然觉得创建起来有点害怕。更重要的是,即使在今天,许多用户也很难很好地理解快捷方式的概念,因此可能很难区分符号链接并理解其用法。
话虽如此,几乎可以保证您会发现很容易更改任何设置,以便程序指向正确的目录,并且您并没有真正创建符号链接,但了解如何设置和使用良好的符号链接确实很方便。
