Symlink ve Hard Link Kavramları
Eğer UNIX tabanlı işletim sistemlerinde geliştiricilik yapıyorsanız, birçok konfigürasyon ayarı ile karşılaşmışsınızdır. Bu konfigürasyon dosyalarının yönetimi esnasında en sık başvuracağınız, yöntem symlink
ismi verilen yöntemdir.
Bu yazımda:
symlink
nedir?- Hangi amaçla
symlink
yapılır? hardlink
ilesymlink
farkları nelerdirstow
nedir?stow
ilesymlink
arasında nasıl bir bağlantı vardır?
gibi temel soruları açıklayacağım.
Sembolik Link (Symbolic Link)
Linux veya diğer Unix tabanlı işletim sistemlerinde bir dizine başka bir isimle ulaşmaya olanak veren kısayol atamasına symbolic link ismi verilir.
- Sembolik link yalnızca orjinal dosya veya klasörün sistemdeki yolunu işaret eder.
- Dosya içeriğini değil yalnızca dizin yolunu (path) gösterir.
- Orjinal dosya silinirse sembolik link ölü bir kısayol (broken link) olarak kalır.
Sembolik Link Oluşturma
Sembolik link oluşturmak için aşağıdaki sözdizimi (syntax) kullanılır:
ln -s <target> <symbolic-link-path>
Örneğin aşağıdaki myfile.txt
isimli dosyayı myfile-symlink.txt
isimli bir yola atıyoruz:
ln -s /home/user/myfile.txt /home/myfile-symlink.txt
Aynı işlemi klasör yapıları için de kullanabiliriz:
ln -s /home/user/myfolder /home/user/myfolder-symlink
Yukarıda myfolder
isimli klasörümüzü myfolder-symlink
isimli klasöre atadık.
Sembolik Link Silme
Mevcut bir sembolik link normal dosya gibi silinebilir. Bu işlem orjinal dosyayı silmez ya da değiştirmez.
rm <sembolik-link>
Sembolik link ismi girilerek aşağıdaki şekilde silinir:
rm /home/user/link_dosya.txt
Hard Link
Linux tabanlı işletim sistemlerinde hard link kavramı, asıl dosyaya bağlı farklı bir yolda bulunan klon dosyaları belirtir.
- Ana dosyayla eş zamanlı olarak düzenlenen sistem yedeğidir.
- Hard link sistemlerin [[symbolic-link]] sistemlerden farkı kopyalanan dizin, orjinal dosya silindiğinde dahi varlığını korur.
- Hafızada aynı
ìnode
üzerinde tutulur. - Sistemden silebilmek için tüm hard link bağlantılarını silmek gerekir.
Hard Link Oluşturma
touch orijinal.txt
ln orijinal.txt kopya.txt
Bu komut sayesinde orjinal.txt
ve kopya.txt
olmak üzere aynı inode
üzerinde kullanılan iki ayrı yapı oluşturduk. orjinal.txt
bilerek ya da kazayla silinse dahi kopya.txt
üzerinden inode
üzerindeki dosyaya ulaşım sağlanabilir. Bu tarz hard-link
yapılarını bağlı olduğu dosya sistemlerinde görüntüleyip, hard link içeren tüm dosyaları silmek suretiyle sonlandırabiliriz.