I was trying to create a directory hard link (not a symbolic one).

I've tried this: mklink /d /h newfolder currentfolder but it's telling me Access is denied. I don't understand how is access denied because I'm running batch as administrator.

How do we create a directory hard link?

Windows Vista Home Premium SP2

2 Answers 2


I think that hard links are for files only and not directories.

  • 4
    Yes, there is no such thing as a directory hard link, only junction points and symbolic links. Oct 5, 2011 at 3:46
  • 1
    Hardlinks for directories are technically possible, but need great care to avoid loops in the filesystem. The only OS which allows them is Mac OS X 10.5, for use in Time Machine. Oct 5, 2011 at 6:04
  • > I think that hard links are for files only and not directories. Thanks for the confirmation; I keep intending to read up on symlinks and such: 1 2 3 4
    – Synetech
    Dec 23, 2011 at 3:22
  • 2
    well... under linux-systems you can use mount --bind for folders but i'm not sure if there is something similar in windows! Oct 19, 2015 at 13:37

There is no such thing as a hard link to a directory in Windows. In Windows, you either create a symbolic link to a directory by using the command mklink /d link_name target_dir or you create a junction with mklink /J link_name target_dir.

Differently of hard links, junctions may span multiple volumes and are sometimes called "soft links" by Microsoft, as you can read here:

A junction (also called a soft link) differs from a hard link in that the storage objects it references are separate directories, and a junction can link directories located on different local volumes on the same computer.

Some caveat is required here since Microsoft's nomenclature is not really neat but, in a few words, these are your options to create references to files and directories in Windows:
(1) shortcuts: files whose content is the location of another file. It works more or less like a soft link, with a crucial difference though: it is NOT a directory entry, the link information is stored inside the file. For this reason, it doesn't work with many applications (at least, it works as it is supposed to within the Windows Explorer...);
(2) hard links: created with the command mklink /h. Valid for files only and works within a given volume (i.e., just like in Linux, you cannot hard-link a file in another partition nor in a network drive);
(3) junctions: this beast is really weird. It works with directories only, and - funny thing - can point to directories in other file systems;
(4) symbolic links: it is much like in Linux, and works with directories and files, too. (But tends to require Administrator privileges, which can make it rather inconvenient.) As I mentioned above, it is created with the command mklink /d link_name target_dir for directories (and mklink link_name target_file for files). You can read more about this here.

  • 1
    Humberto, I kinda like your answer, but there are two problems: 1. The "Otherwise, junctions operate identically to hard links" part in the MSDN quote is dangerously wrong: a profound difference is that a hard link behaves identically to its "target" (or "sibling", actually...) file in that no matter which one you delete, the other will stay unaffected. Junctions (like other soft links) lack this important symmetry. 2. The reference to Joseph's answer makes no sense. +1: "things you can create to point to file system entities (files and directories)" should be "... (files or directories)".
    – Sz.
    Dec 17, 2017 at 0:05
  • 1
    @Sz you were totally right, and I modified my answer according to your comments (indeed, the answer was a bit fuzzy). Thanks! Dec 25, 2017 at 23:03
  • Thanks for the follow-up! I failed to point out in my prev. comment that distancing junctions from soft (or sym-) links and trying to relate them to hard links instead ("It is like a hard link, ...") is still a bit off. Junctions really are soft links, in fact they are very much unlike hard links in almost every respect. (Hard links are low-level filesystem objects quite transparent to fs. operations, and e.g. can't "break", once created, unlike other link types that are called "soft" exactly for this reason.) (I'll edit the a. to show what I mean, feel free to reject/adjust. Cheers!)
    – Sz.
    Jan 1, 2018 at 14:42
  • Instead of target, we could use source here which resolves the confusion May 1, 2021 at 16:52
  • 1
    Not sure who needs to read this but in these modern Powershell-mostly times, this only worked for me from cmd.exe, and even for the soft link from a directory in user home to another directory in same user home (same partition) I needed to run cmd.exe as Administrator! But it worked, thank you
    – Mike Hardy
    Oct 18, 2023 at 14:49

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .