Windows'da kısayol yaratmanın düz yolu kısayolu kopyalayıp, yapıştırırken "kısayol yapıştır"ı seçmek. Bu şekilde aslında lnk uzantılı bir dosya yaratılır. Bu kısayol çift tıklandığında bu bu lnk uzantılı dosyanın işaret ettiği dosya çalıştırılır.
Bundan başka bir de sembolik link yaratma var. C:\Windows\system32\notepad.exe'nin sembolik linkini yaratmak için komut satırında şunları yazmak gerek (mklink'i yönetici hakları ile çalıştırarak):
mklink notdefteri C:\Windows\system32\notepad.exe
Bu iki yöntem ile mevcut klasörde yaratılan dosyaların farkı aşağıdaki gibi olacak
15.11.2018 13:27 <SYMLINK> notdefteri [C:\Windows\System32\notepad.exe]
15.11.2018 13:28 1.191 notdefteri.lnk
İlki sembolik kısayol (<SYMLINK> olarak görülüyor), diğeri "kısayolu yapıştır" yöntemi ile oluşturulan.
Bir klasörün sembolink link'ini oluşturmak için /D anahtarı kullanılmalı.
mklink /D Belgelerim C:\Users\metin\Documents
Bu yöntemle oluşturulan kısayol şöyle gözükür (<SYMLINKD>):
15.11.2018 13:34 <SYMLINKD> tf [E:\testfolder]
Sembolik linkler silinse bile notepad.exe dosyası silinmez. Çünkü bunlar asıl notepad.exe dosyasını gösteren işaretçilerdir. Ama notepad.exe silinirse o zaman sembolik linkler anlamsız birer işaretçi olurlar.
Dosya sistemindeki sembolik linkleri bulmak için dir komutunu /AL ile kullanmak gerek:
dir /AL
Eğer bir klasörün alt klasörlerindeki bütün dosyaları bulmak istiyorsak
dir /AL /S C:\Users
kullanılabilir. Aynı şeyi powershell ile yapmak istersek
Get-ChildItem | where {$_.Attributes -match "ReparsePoint"}
Powershell ile dir komutu (Get-ChildItem) kullanıldığında ilk sütunda görüntülenen Mode alanındaki dosyanın öznitelikleri (attributes) listelenir. Bu özniteliklerden en sağdaki veri dosyanın bir reparsepoint olup olmadığını gösterir. Sembolik linkler için bu kısımda bir "l" harfi gösterilir. Örnek:
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----l 15.11.2018 13:34 tf
-a---l 15.11.2018 13:27 0 notdefter
Bundan başka bir de hard link'ler var. Bunun için mklink'i /H anahtarını ile kullanmak lazım:
mklink /H hardlink dosya.exe
Bunun sonucunda diskin üzerindeki aynı veriyi gösteren iki dosya sistemi girişimiz olur. Bunlardan biri silinse bile asıl dosya verisi silinmez. Hard link'in hedefi aynı disk bölümü içinde olmalıdır.
Hard link'ler klasörler için olmaz. Klasörler için benzer kavram junction'dır. Başka bir disk bölümünde yer alan klasör için junction yaratılabilir. Örnek:
mklink /J junction D:\testfolder
Bu konuları özetlemek için
ss64.com sitesinden alınma aşağıdaki tablo faydalı olabilir:
| Dosyalar
için? | Klasörler
için? | Başka disk
bölümü? | Destek: | Var olmayan bir hedef? | Göreceli? | Silme |
Kısayol | Evet | Evet | Evet | Windows 95+ | Evet | Hayır | Del |
Hard link | Evet | Hayır | Hayır | Windows 3.5+ | Hayır | Hayır | Del |
Junction
(soft link) | Hayır | Evet | Yes (aynı bilgisayarda) | Windows 2000+ | Evet | Hayır | RD |
Symbolic link | Evet | Evet | Evet | Vista+ | Evet | Evet(aynı disk bölümünde) | RD klasör veya Del dosya |