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.exeBu 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]İlki sembolik kısayol (<SYMLINK> olarak görülüyor), diğeri "kısayolu yapıştır" yöntemi ile oluşturulan.
15.11.2018 13:28 1.191 notdefteri.lnk
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 /ALEğer bir klasörün alt klasörlerindeki bütün dosyaları bulmak istiyorsak
dir /AL /S C:\Userskullanı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 NameBundan başka bir de hard link'ler var. Bunun için mklink'i /H anahtarını ile kullanmak lazım:
---- ------------- ------ ----
d----l 15.11.2018 13:34 tf
-a---l 15.11.2018 13:27 0 notdefter
mklink /H hardlink dosya.exeBunun 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:\testfolderBu 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 |
Hiç yorum yok:
Yorum Gönder