Does Windows have the ln -s or equivalent?
I need to link a file to C:\Windows\System32\drivers\etc\hosts
How can I do that with Windows ? Is there a soft link such as ln -s or equivalent in Windows ?
7 Answers
You are looking for the command "mklink".
Documentation and examples in Microsoft Docs or ss64.com.
Example taken from the link:
// To create a symbolic link named MyDocs from the root directory to the \Users\User1\Documents directory, type:
mklink /d \MyDocs \Users\User1\Documents 1 There may be other ways, but the one I'm familiar with is mklink:
C:\>mklink
Creates a symbolic link.
MKLINK [[/D] | [/H] | [/J]] Link Target /D Creates a directory symbolic link. Default is a file symbolic link. /H Creates a hard link instead of a symbolic link. /J Creates a Directory Junction. Link specifies the new symbolic link name. Target specifies the path (relative or absolute) that the new link refers to. There are junctions but I don't know if this will do exactly what you need.
edit - oops sorry, junction only applies to directories not files
Powershell
As long as Microsoft advices to use powershell as a command interpreter since more than 5 years ago and cmd.exe is becoming a legacy application this question lacks an answer in Powershell:
New-Item -path ~\Desktop\hosts -itemType SymbolicLink -target c:\Windows\System32\Drivers\etc\hostsThis works as of Powershell v5.0
As @inf says, mklink is the solution for Vista and above.
For 2000/XP, you can use fsutil hardlink. Note that, unlike mklink, hardlink doesn't work across drives.
3Link Shell Extension can create symbolic link (among other things). Nice context menu integration. Available for the most recent windows versions and frequently updated.
open the Terminal/CMD under the android/sdk/tools,type
Terminal** ln -s emulator64-x86 emulator-x86** CMDmklink emulator64-x86 emulator-x86
this will get created like..
symbolic link created for emulator64-x86 <<===>> emulator-x86