2012-04-17 63 views
13

說我設置一個符號鏈接:窗口的符號鏈接的目標

mklink /D C:\root\Public\mytextfile.txt C:\root\Public\myothertextfile.txt 

有沒有辦法,看看有什麼myothertextfile.txt的目標是使用命令行?

+0

或者如果可能的話我該如何追逐perl中的鏈接 – 2012-04-17 09:20:34

+5

有一個名爲mytextfile.txt的目錄有點奇怪;你確定你打算使用/ D選項嗎? – 2012-04-17 22:38:46

+3

無論如何,「dir」命令默認顯示符號鏈接的目標。 – 2012-04-17 22:39:09

回答

12

哈利約翰斯頓說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] 
+2

這實際上是一個交匯點,而不是一個符號鏈接,但符號鏈接的目錄列表看起來非常相似。 – 2014-09-28 21:40:07

+1

當使用git bash時,'dir'不可用,但是你可以改寫'cmd // C dir' – 2016-08-05 12:02:02

1

也許有人是熱衷於C#的方法來解決類似Directory.GetDirectories目錄()中的所有目錄符號鏈接。要列出連接或文件符號鏈接,只需更改正則表達式。

static IEnumerable<Symlink> GetAllSymLinks(string workingdir) 
{ 
    Process converter = new Process(); 
    converter.StartInfo = new ProcessStartInfo("cmd", "/c dir /Al") { RedirectStandardOutput = true, UseShellExecute = false, CreateNoWindow = true, WorkingDirectory = workingdir }; 
    string output = ""; 
    converter.OutputDataReceived += (sender, e) => 
    { 
     output += e.Data + "\r\n"; 
    }; 
    converter.Start(); 
    converter.BeginOutputReadLine(); 
    converter.WaitForExit(); 

    Regex regex = new Regex(@"\n.*\<SYMLINKD\>\s(.*)\s\[(.*)\]\r"); 

    var matches = regex.Matches(output); 
    foreach (Match match in matches) 
    { 
     var name = match.Groups[1].Value.Trim(); 
     var target = match.Groups[2].Value.Trim(); 
     Console.WriteLine("Symlink: " + name + " --> " + target); 

     yield return new Symlink() { Name = name, Target = target }; 
    } 
} 

class Symlink 
{ 
    public string Name { get; set; } 
    public string Target { get; set; } 
}