Her şeyin dosya olduğu Linux sistemlerde hard link, soft link nedir şeklindeki sorular her zaman karşımıza çıkıyor. symlink ve soft link Linux ln
komutu ile doğrudan ilgilidir. Bu yazımızda ln komutu kullanımı ile hard link, soft link, sembolik link gibi kavramlara bakacağız. Linux ln komutu nasıl kullanılır beraberce bakacağız.
Hardlink nedir, hard link oluşturma ln ile nasıl yapılır
Hard link nedir, doğrudan dosyayı gösteren adrestir. Yine karışık olduksa şöyle bakalım. Linux sistemdeki /root/dosya.txt
aslında tabi ki sistem diskimizde fiziksel bir numerik adrese denk geliyor. Linux seviyesinde bu inode numarası oluyor. Hard linki aynı olan dosyaların bu numarası da aynı oluyor. Test için şöyle yapalım, hard link verme işlemi için aşağıdaki komutları çalıştıralım:
touch dosya1
ln dosya1 dosya2
ls -li file1 file2
çıktı aşağı yukarı şöyle olacaktır
27267209 -rwxrwxrwx 2 root root 0 Aug 20 20:31 dosya1
27267209 -rwxrwxrwx 2 root root 0 Aug 20 20:31 dosya2
Görüldüğü gibi baştaki numara aynı. Eğer bu dosyalardan birini düzenlersek öbürü de düzenleniyor. Hatta düzenlenme tarihleri bile aynı oluyor, hard link vermenin sonuçlarından biri bu:
Güzel yanı ise şu, dosyalardan birini silsek bile içeriği kaybetmiyoruz ? . Bir nevi yedekleme gibi bir sistem oluşuyor. Tüm hardlinkler silinene kadar dosya sistemimizde kayıtlı kalıyor. Güvenlik amaçlı bir çok yerde kullanılabiliyor.
Sembolik link, Symlink oluşturma ve ln komutu ile Soft link verme
Symlink, Sembolik link, soft link bunların hepsi aynı dosya bağlama teknikleri. Hard linklerden farklı olarak sembolik linkler kısayol gibi çalışır. Tabi kısayol kullanarak değiştirdiğimiz dosya yine değişir. Ana dosyayı sildiğimizde kısayol hedefsiz kalır. Yani soft linkler aslında sistemdeki başka bir dosyanın adresini tutar. softlink oluşturma işlemi şöyle:
touch dosya1
ln -s dosya1 dosya2
ls -la
Soft link verme işlemini ln -s ile yaptık. Ekran çıktısında ise dosya2’nin symlink olduğunu rahatlıkla görebiliyoruz. Bu dosyayı düzenlersek ana dosya da düzenlecek:
Burada hem düzenlenme tarihlerinin hem de inode
numaraların farklı olduğunu görüyoruz. Yani kısayol dosyadan aslında bağımsız. Soft link kullanarak dosyayı değiştirdik. Soft link değişmedi, dosya değişti. Bunların ikisinin ayrı iki nesne olduğunu böylece görmüş oluyoruz. lrwxrwxrwx
kısmında da dosya2
‘nin aslında dosya değil link olduğunu bize söylüyor. Yani bu dosya sistemindeki ayrı bir kayıt. Tabi soft linkler hard link’deki gibi diskte ayrı yer kaplamaz. Ana dosyayı sildiğiniz anda soft link boşa çıkar.