gokayburuc.dev

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:

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 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

Linux tabanlı işletim sistemlerinde hard link kavramı, asıl dosyaya bağlı farklı bir yolda bulunan klon dosyaları belirtir.

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.