windows符号链接目标

Sre*_*Ram 22 windows symlink

假设我设置了一个符号链接:

mklink  /D C:\root\Public\mytextfile.txt C:\root\Public\myothertextfile.txt
Run Code Online (Sandbox Code Playgroud)

编者注:选项/D- 用于创建目录符号链接 - 与目标文件不一致,如本示例所示,这引起了一些混淆.要创建文件符号链接,只需省略即可/D.

有没有办法mytextfile.txt使用命令行查看目标是什么?

Pau*_*est 21

正如哈里约翰斯顿所说,dir命令显示了象征性联系的目标

2014/07/31  11:22    <DIR>          libs
2014/08/01  13:53             4,997 mobile.iml
2014/07/31  11:22               689 proguard-rules.pro
2014/09/28  10:54    <JUNCTION>     res [\??\C:\Users\_____\mobile\src\main\res]
Run Code Online (Sandbox Code Playgroud)

  • 这实际上是一个连接点,而不是符号链接,但符号链接的目录列表看起来非常相似. (3认同)
  • 使用 git bash 时,`dir` 不可用,但您可以改为编写 `cmd //C dir` (2认同)

mkl*_*nt0 8

为了补充Paul Verest的有用答案

  • 虽然cmddir的确显示了链路类型和目标路径,提取的信息是平凡的-见下面的PowerShell的替代品。

  • 为了发现当前目录中的所有链接,请使用dir /aL

PowerShell(PSv5 +)解决方案:

以完整路径列出当前目录中的所有链接及其目标:

PS> Get-ChildItem | ? Target | Select-Object FullName, Target

FullName                      Target
--------                      ------
C:\root\public\mytextfile.txt {C:\root\Public\myothertextfile.txt}
Run Code Online (Sandbox Code Playgroud)

确定给定链接的目标:

PS> (Get-Item C:\root\Public\mytextfile.txt).Target
C:\root\Public\myothertextfile.txt
Run Code Online (Sandbox Code Playgroud)


hxy*_*yhi 5

编写一个批处理文件(get_target.bat)来获取符号链接的目标:

@echo off
for /f "tokens=2 delims=[]" %%H in  ('dir /al %1 ^| findstr /i /c:"%2"') do (
    echo %%H
)
Run Code Online (Sandbox Code Playgroud)

例如,要获取 的目标C:\root\Public\mytextfile.txt

get_target.bat C:\root\Public\ mytextfile.txt
Run Code Online (Sandbox Code Playgroud)