Windows Vista added the ability to create symbolic links to files and directories. How do I create a symbolic link and what are the current consumer and server versions of Windows that support it?
You can create a symbolic link with the command line utility
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.
Symbolic links via mklink are available since Windows Vista and Windows Server 2008. On Windows XP and Windows Server 2003 you can use
fsutil hardlink create <destination filename> <source filename>
According to msdn.microsoft, Symbolic Links are NOT supported on FAT16/32 and exFAT. It seems Windows only supports them from or to NTFS-Partitions. Future Windows operating systems are likely to continue support for mklink.
On Windows XP you can use
fsutil (built into the OS) to create a hardlink
fsutil hardlink create c:\foo.txt c:\bar.txt
Keep in mind fsutil will only work if both are on same drive
One small thing, if you are using Powershell, mklink does not work directly, run it like this:
PS C:\d\eclipseInstalls> cmd /k mklink /D antRunner 3.4.2 symbolic link created for antRunner <<===>> 3.4.2
Didn't see this in any of the answers, but linkd.exe (in the Windows 2003 Resource kit here) allows you to create junctions, which pretty much function as a soft/hard link does in Linux. Junctions are available from Windows 2000 and up, so just copy linkd.exe to the target system and it should work.
If you are still on old Windows, like XP, 2000, 2003, etc., try NTFS Link.
I use it a lot. You get a shell link right click menu option to create a junction point. Excellent stuff.
See TechNet entry. I believe it is a Vista/Server 2008 and up feature.
To make sure your links work you might want to check the configuration of your server. Links can be made but unless you use the symlinkevaluation setting in the following command your links might not work.
fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1
See also http://technet.microsoft.com/en-us/library/cc754077%28v=ws.10%29.aspx. By default only the local options are activated.