sintaxis simbolico link enlace eliminar ejemplos correcta comando windows symlink

simbolico - destino de enlace simbólico de windows



mklink/j ejemplos (4)

Digamos que configuro un enlace simbólico:

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

Nota del editor: La opción /D , que es para crear enlaces simbólicos de directorio , está en desacuerdo con los archivos de segmentación, como en este ejemplo, lo que ha causado cierta confusión. Para crear un enlace simbólico de archivo , simplemente omita /D

¿Hay alguna forma de ver cuál es el objetivo de myothertextfile.txt utilizando la línea de comandos?


Como dijo Harry Johnston, el comando dir muestra el objetivo de los enlaces simbólicos

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]


Para complementar la útil respuesta de Paul Verest :

  • Si bien el dir cmd hecho muestra el tipo de enlace y la ruta de destino, la extracción de esa información no es trivial; consulte a continuación una alternativa de PowerShell.

  • Para descubrir todos los enlaces en el directorio actual, use dir /aL .

Soluciones PowerShell (PSv5 +):

Enumere todos los enlaces y sus destinos en el directorio actual como rutas completas:

PS> Get-ChildItem | ? Target | Select-Object FullName, Target FullName Target -------- ------ C:/root/public/mytextfile.txt {C:/root/Public/myothertextfile.txt}

Determine el objetivo de un enlace dado:

PS> (Get-Item C:/root/Public/mytextfile.txt).Target C:/root/Public/myothertextfile.txt


Tal vez alguien esté interesado en un método de C # para resolver todos los enlaces simbólicos de directorio en un directorio similar a Directory.GetDirectories (). Para enumerar enlaces simbólicos de uniones o archivos, simplemente cambie la expresión regular.

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; } }


todos los créditos a @SecurityAndPrivacyGuru , [cmd]

script / función de lotes completos que lee enlaces simbólicos {| s en la carpeta} y muestra la lista con ellos y sus rutas de destino

@echo off setlocal enableExtensions enableDelayedExpansion cd /D "%~dp0" set br=^ rem br; set "pafIf=<<pafToSymlink|pafToFolder>>" set "gIfZsymLink=" for /f "tokens=*" %%q in (''dir "!pafIf!" /al /b'') do ( for /f "tokens=2 delims=[]" %%r in (''dir /al ^| findstr /i /c:"%%q"'') do ( set "gIfZsymLink=!gIfZsymLink!%%~fq>%%r!br!" ) ) set "gIfZsymLink=!gIfZsymLink:~0,-1!" rem echo "!gIfZsymLink!" for /f "tokens=1,2 delims=>" %%q in ("!gIfZsymLink!") do ( echo symlink: %%q , filepath: %%r ) :scIn rem endlocal pause rem exit /b