检查符号链接在 Windows 7 中指向的位置

Bea*_*ode 36 windows-7 symbolic-link command-line

在 Windows 7 中,如何检查文件是否为符号链接,文件夹是否为连接点,以及如何检查它们指向的位置(以防它们是符号链接/连接点)。在资源管理器和命令行中。

有一种从命令行执行此操作的方法非常重要,以便在您想要制作文件夹树的精确副本时知道如何在另一台计算机上复制符号链接。

如果我右键单击一个文件并选中“属性”,则找不到任何表明它是符号链接的迹象。

Ste*_*nny 44

dir命令 dir /a可以这样做:

2012-12-26  09:30 PM    <DIR>          .
2012-12-26  09:30 PM    <DIR>          ..
2012-12-26  09:30 PM                 0 a.txt
2012-12-26  09:30 PM    <SYMLINK>      link.txt [a.txt]
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用 Windows 资源管理器:

Right click column, More, Link Target
Run Code Online (Sandbox Code Playgroud)

  • Windows 7 上的链接目标字段为空 (5认同)
  • @gonzalezea 是的,确实如此。早在 2012 年我发布这篇文章时,它就可以与 Windows 7 一起使用,现在也可以使用 (2认同)
  • 对于新用户来说可能不太明显,这是一个命令行解决方案。用户必须打开命令提示符,然后将目录(使用 CD 命令)更改为包含符号链接的目录,然后键入 DIR 命令并按“Enter”键。在错误的目录中运行 DIR 命令是一个常见的错误。但这是可以理解的,除非您确定符号链接位于哪个目录(并不总是显而易见的,因为 Windows GUI 不会明确告诉您特定目录是否包含任何符号链接或连接)。查找类型为 _FILE FOLDER_ 而不是 _SHORTCUT_ 的快捷方式。 (2认同)

mar*_*say 6

使用 PowerShell,至少在 Windows 操作系统上,您可以在任何给定目录中找到符号链接,如下所示:

Get-ChildItem 'C:\nodejs\bin\' | Where-Object {$_.LinkType -eq 'SymbolicLink'}
Run Code Online (Sandbox Code Playgroud)

更简洁的替代方法是使用Get-ChildItem's alias ls

ls 'C:\nodejs' -Attributes ReparsePoint -Recurse
Run Code Online (Sandbox Code Playgroud)

您可以通过执行以下任一操作来获取有关符号链接的相关信息:

获取文件项并输出其Target 属性。目标是符号链接的“值”。另外,当在操作系统之间并置时用于创建符号链接的方法或命令签名,“目标”、“路径”和/或“值”的参数名称可能与不同操作系统上的另一个方法签名具有不同的含义。

E:\AIT> Get-Item -Path 'C:\nodejs\bin\ionic.cmd' | Select-Object -ExpandProperty Target
E:\AIT\out\dependency_symlink.cmd
Run Code Online (Sandbox Code Playgroud)

获取文件项并输出其LinkType 属性。LinkType 值为 SymbolicLink 的项目意味着它是象征性的。

E:\AIT> Get-Item -Path 'C:\nodejs\bin\ionic.cmd' | Select-Object -ExpandProperty LinkType
SymbolicLink
Run Code Online (Sandbox Code Playgroud)

获取文件项并输出其Mode属性。Mode 值中带有的项l表示它是符号链接。

E:\AIT> Get-Item -Path 'C:\nodejs\bin\ionic.cmd' | Select-Object -ExpandProperty Mode
-a---l
Run Code Online (Sandbox Code Playgroud)

获取文件项并输出其Attributes 属性。具有 ReparsePoint 值的项目可能表示符号链接。

E:\AIT> Get-Item -Path 'C:\nodejs\bin\ionic.cmd' | Select-Object -ExpandProperty Attributes
Archive, ReparsePoint
Run Code Online (Sandbox Code Playgroud)


wil*_*yes 5

StackOverFlow复制,我只使用了这一行,它有效

fsutil reparsepoint query "folder name" | find "Symbolic Link" >nul && echo symbolic link found || echo No symbolic link

说明

来自MSDN关于 FSUtil :执行与文件分配表 (FAT) 和 NTFS 文件系统相关的任务,例如管理重解析点、管理稀疏文件或卸载卷。如果不带参数使用,fsutil 会显示支持的子命令列表。

对于我们的使用,我们只关心它输出一个包含“符号链接”的行,如果它是符号的,我们然后find,如果find成功,我们输出一个东西,如果没有,我们输出其他东西。

注意事项

  • 如果路径中有空格,则文件夹名称周围的引号是必需的。
  • 无论文件夹不存在还是不是符号链接,它都会提供相同的输出,请谨慎使用。