当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 在 Windows 中创建符号链接 (Symlink)

作者:精品下载站 日期:2024-12-14 23:32:36 浏览:15 分类:玩电脑

在 Windows 中创建符号链接 (Symlink)


符号链接 (symlink) 是文件系统上的特殊文件,不包含任何数据,但实际上是指向另一个对象(文件或文件夹)的快捷方式。当访问符号链接时,操作系统认为它是原始文件(文件夹)并完全透明地使用它。

符号链接在 Windows 中经常用于系统文件和目录。当您需要将大文件移动到另一个磁盘并且 Windows 必须考虑它们仍然位于原始目录中时(例如,当您想通过将某些目录移动到速度较慢且较大的 HDD 而不中断程序来节省 SSD 空间时),您可以使用它们。当位于不同 LUN 中的目录必须在单个入口点中可用时,您可以在 SMB 文件服务器上使用符号链接。

Windows 中可用于 NTFS 卷的三种类型的文件链接:硬链接、软链接(符号链接)和接合点。

  • 硬链接只能指向本地文件,而不能指向文件夹。硬链接是指向同一卷上另一个文件的文件链接,而不复制该文件。它具有与源文件相同的大小和属性(但不占用驱动器上的实际空间);

  • 连接点(目录硬链接)只能指向一个目录(在同一卷或另一个卷上);

  • 符号链接(软链接、符号链接)可以指向远程计算机上的本地文件、文件夹或网络共享(通过 UNC 路径)。支持相对路径。

在大多数情况下,当您需要创建对对象的引用时,可以使用符号链接来完成大多数任务。

如何在 Windows 中创建符号链接?

要在 Windows 中创建符号或硬链接,您可以使用内置的 mklink 工具或 PowerShell。

[玩转系统] 在 Windows 中创建符号链接 (Symlink)

mklink 的语法很简单。要创建文件的符号链接,请指定链接名称和您希望其指向的目标对象。您可以设置链接类型:

/D

— 指向目录的符号(软)链接,

/H

— 硬链接,

/J

- 一个连接点。

为了使用 mklink 创建符号链接,请以管理员身份运行命令提示符。否则,当您运行该命令时,将出现以下错误:您没有足够的权限来执行此操作

如果要允许非管理员用户创建符号链接,请将用户组添加到创建符号链接 GPO 选项(计算机配置 -> 窗口设置 -> 安全设置 -> GPO 编辑器中的用户权限分配)。默认情况下,仅将本地管理员组添加到策略中。更改设置后更新本地组策略:

gpupdate /force

[玩转系统] 在 Windows 中创建符号链接 (Symlink)

在 C:\PS 中创建指向 notepad.exe 文件的符号链接:

mklink C:\PS\note.exe c:\Windows\System32\notepad.exe

您将看到以下消息:

symbolic link created for C:\PS\note.exe <<===>> c:\Windows\System32\notepad.exe

现在您可以使用 note.exe 符号链接来运行 notepad.exe。

创建到同一驱动器上另一个文件夹的符号链接:

mklink /D "C:\PS\Downloads" "C:\Users\user\Downloads"

[玩转系统] 在 Windows 中创建符号链接 (Symlink)

现在,当您打开 C:\PS\Downloads 文件夹时,您将看到它引用的目录的内容。

[玩转系统] 在 Windows 中创建符号链接 (Symlink)

显示C:\PS的内容:

dir c:\ps

正如您所看到的,某些文件的属性显示它是符号链接(simlinkd)。它们引用的对象也会显示。在文件资源管理器中,符号链接显示为快捷方式图标,它们指向的目标对象显示在其属性中。

[玩转系统] 在 Windows 中创建符号链接 (Symlink)

您还可以使用 PowerShell 在 Windows 中创建符号链接(在本例中我使用相对路径来创建符号链接):

New-Item -ItemType SymbolicLink -Path ".\test\tmpfiles" -Target "..\tmp\files"

[玩转系统] 在 Windows 中创建符号链接 (Symlink)

您可以创建指向远程计算机或服务器上的共享网络文件夹的符号链接。以 UNC 格式指定网络共享地址。

mklink /D c:\ps\share \hq-fs01\Share

例如,让我们使用远程计算机的 IP 地址连接管理共享 C$:

mklink /D c:\remotePC\server1 \192.168.13.10\C$

如果您在使用符号链接访问共享时看到以下错误:

The symbolic link cannot be followed because its type is disabled.

检查计算机上允许使用符号链接的方式:

fsutil behavior query SymlinkEvaluation
Local to local symbolic links are enabled.
Local to remote symbolic links are enabled.
Remote to local symbolic links are disabled.
Remote to remote symbolic links are disabled.

[玩转系统] 在 Windows 中创建符号链接 (Symlink)

要启用远程资源的符号链接,请运行以下命令:

fsutil behavior set SymlinkEvaluation R2R:1
fsutil behavior set SymlinkEvaluation R2L:1

您可以像处理普通文件系统对象一样处理符号链接:移动、重命名或删除它们。 Windows 将自动更改符号链接的设置,以便它们指向正确的目标。

要删除符号链接,请使用常用命令(就像对文件所做的那样):

Del c:\ps\note.exe
RD c:\ps\downloads

如何查找 Windows 驱动器上的所有符号链接?

Windows 中没有内置工具来查看和管理磁盘上的所有符号链接。

您可以使用以下命令列出磁盘上的所有符号链接:

dir /AL /S C:\ | find "SYMLINK"
  • /A

    - 显示具有 L 属性的文件(符号链接)

  • /S

    - 对所有子文件夹递归运行命令

  • C:\

    — 指定驱动器名称或文件夹路径以搜索符号链接

[玩转系统] 在 Windows 中创建符号链接 (Symlink)

您还可以使用 PowerShell 获取磁盘上所有符号链接的列表。只需扫描所有文件夹并找到具有 ReparsePoint 属性的 NTFS 对象:

Get-ChildItem -Path C:\ -Force -Recurse -ErrorAction 'silentlycontinue' | Where { $_.Attributes -match "ReparsePoint"}

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯