This cheatsheet is to provide guide for symbolic links in Windows. There are four different types of symbolic links:
- Soft file link
- Soft folder link
- Hard file link
- Hard folder link (junction)
Next chapters are covering how to create symbolic links in cmd
and powershell
environments.
A command for creating symbolic links is mklink
. It was heavily inspired by a long ago established Linux Bash command ln
.
For soft file link:
>mklink link.file source.file
symbolic link created for C:\Users\Test User\Documents\Links\link.file <<===>> C:\Users\Test User\Documents\Links\source.file
>dir
Volume in drive C is Windows
Volume Serial Number is FFFC-00A3
Directory of C:\Users\Test User\Documents\Links
07.11.2021 17:53 <DIR> .
07.11.2021 17:52 <DIR> ..
07.11.2021 18:06 182 source.file
07.11.2021 17:53 <SYMLINK> link.file [source.file]
2 File(s) 182 bytes
2 Dir(s) 933 850 730 496 bytes free
For soft folder link:
>mklink /d link_folder source_folder
symbolic link created for C:\Users\Test User\Documents\Links\link_folder <<===>> C:\Users\Test User\Documents\Links\source_folder
>dir
Volume in drive C is Windows
Volume Serial Number is FFFC-00A3
Directory of C:\Users\Test User\Documents\Links
07.11.2021 17:55 <DIR> .
07.11.2021 17:52 <DIR> ..
07.11.2021 17:55 <DIR> source_folder
07.11.2021 17:55 <SYMLINKD> link_folder [source_folder]
0 File(s) 0 bytes
4 Dir(s) 933 850 730 496 bytes free
For hard file link:
>mklink /h link.file source.file
Hardlink created for C:\Users\Test User\Documents\Links\link.file <<===>> C:\Users\Test User\Documents\Links\source.file
>dir
Volume in drive C is Windows
Volume Serial Number is FFFC-00A3
Directory of C:\Users\Test User\Documents\Links
07.11.2021 17:56 <DIR> .
07.11.2021 17:51 <DIR> ..
07.11.2021 18:04 176 source.file
07.11.2021 18:04 176 link.file
2 File(s) 352 bytes
2 Dir(s) 933 850 730 496 bytes free
For hard folder link (junction):
>mklink /j link_folder source_folder
Junction created for C:\Users\Test User\Documents\Links\link_folder <<===>> C:\Users\Test User\Documents\Links\source_folder
>dir
Volume in drive C is Windows
Volume Serial Number is FFFC-00A3
Directory of C:\Users\Test User\Documents\Links
07.11.2021 17:57 <DIR> .
07.11.2021 17:51 <DIR> ..
07.11.2021 17:57 <DIR> source_folder
07.11.2021 17:57 <JUNCTION> link_folder [C:\Users\Test User\Documents\Links\source_folder]
0 File(s) 0 bytes
4 Dir(s) 933 850 730 496 bytes free
Powershell is notorious for overcomplicating things so the cmdlet for this action is performed like below.
For soft file link:
PS > New-Item -ItemType SymbolicLink -Path link.file -Target source.file
Directory C:\Users\Test User\Documents\Links
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---l 07.11.2021 17:53 0 link.file
PS > Get-ChildItem
Directory C:\Users\Test User\Documents\Links
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 07.11.2021 18:06 182 source.file
-a---l 07.11.2021 17:53 0 link.file
For soft folder link:
PS > New-Item -ItemType SymbolicLink -Path link_folder -Target source_folder
Directory: C:\Users\Test User\Documents\Links
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----l 07.11.2021 17:55 link_folder
PS > Get-ChildItem
Directory: C:\Users\Test User\Documents\Links
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 07.11.2021 17:55 source_folder
d----l 07.11.2021 17:55 link_folder
For hard file link:
PS > New-Item -ItemType HardLink -Path link.file -Target source.file
Directory: C:\Users\Test User\Documents\Links
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 07.11.2021 18:04 176 link.file
PS > Get-ChildItem
Directory: C:\Users\Test User\Documents\Links
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 07.11.2021 18:04 176 source.file
-a---- 07.11.2021 18:04 176 link.file
For hard folder link (junction):
PS > New-Item -ItemType Junction -Path link_folder -Target source_folder
Directory: C:\Users\Test User\Documents\Links
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----l 07.11.2021 17:57 link_folder
PS > Get-ChildItem
Directory: C:\Users\Test User\Documents\Links
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 07.11.2021 17:57 source_folder
d----l 07.11.2021 17:57 link_folder