13

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

15

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. – Harry Johnston Oct 5 '11 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. – grawity Oct 5 '11 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 '11 at 3:22
  • 1
    well... under linux-systems you can use mount --bind for folders but i'm not sure if there is something similar in windows! – DJCrashdummy Oct 19 '15 at 13:37
5

There is no such thing as a hard link to a diretory 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.

  • I strongly suggest removing the commentary from your answer – Ramhound Aug 14 '17 at 2:25
  • Is it an opinion, or did I infringe some rule of the forum? – Humberto Fioravante Ferro Aug 14 '17 at 16:57
  • We are not a forum – Ramhound Aug 14 '17 at 20:24
  • Right, comment taken out. My apologies! – Humberto Fioravante Ferro Aug 14 '17 at 22:33
  • 1
    @Sz you were totally right, and I modified my answer according to your comments (indeed, the answer was a bit fuzzy). Thanks! – Humberto Fioravante Ferro Dec 25 '17 at 23:03
-2

Use /J to create a hard link pointing to a directory, also known as a directory junction:

mklink /J Link Target

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.