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:
symlinknedir?- Hangi amaçla
symlinkyapılır? hardlinkilesymlinkfarkları nelerdirstownedir?stowilesymlinkarası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.