Öncelikle linklemenin ne olduğu hakkında bilgi sahibi değilseniz ŞU adresten bilgi edinebilirsiniz.

Soft link (sembolik link olarak da geçer) bir dosya veya dizinin linkidir. Hard link ise orjinal dosyanın kopyasıdır. Orjinal dosyayı sildiğinizde soft link (sembolik link) mevcut olmayan bir dosya veya dizini göstermiş olur yani boşa çıkar. Çünkü gösterilen yani linklenen dosya veya dizin silinmiştir. Ama hard link tamamen farklıdır. Hard link yaptığınızda orjinal dosyayı içeriğiyle beraber kopyalamış olduğunuz için orjinal dosyayı silseniz bile linklenmiş dosyanın içeriği silinmez.

Soft link (sembolik link) özellikleri şunlardır:

  • Farklı dosya sistemleri birbirine linklenebilir (ntfs dosya sistemindeki bir konumu Ext3 dosya sistemindeki bir konuma linkleyebilirsiniz)
  • Dosya ve klasör için link oluşturulabilir.
  • Farklı inode sayısı ve yetkilere sahiptir. (inode nedir?)
  • Orjinal dosyanın yetkileri değiştiğinde linklenmiş dosyanın yetkileri değişmez.
  • Sadece orjinal dosya veya klasörün konumunu gösterir, içeriği kopyalanmaz.

Hard link özellikleri şunlardır:

  • Farklı dosya sistemleri birbirine linklenemez. Aynı dosya sisteminde olmalıdır.
  • Sadece dosyalar linklenebilir, dizinler linklenemez.
  • Orjinal dosyayla aynı inode sayısına ve yetkilere sahiptir.
  • Orjinal dosyanın yetkileri değiştiğinde linklenmiş dosyanın yetkileri de değişir.
  • Orjinal dosyayla aynı içeriğe sahiptir.
Soft link (sembolik link) Oluşturmak
$ echo "Merhaba Dunya" > orjinal.txt
$ ln -s orjinal.txt softlink.txt # orjinal.txt dosyasını softlink.txt dosyası olarak soft link yaptık
$ cat softlink.txt
Merhaba Dunya
$ ls -lhia
4620632 drwxrwxr-x 2 emir emir 4.0K May 19 17:39 .
4589605 drwxr-xr-x 7 emir emir 4.0K May 19 17:39 ..
4594614 -rw-rw-r-- 1 emir emir   14 May 19 17:39 orjinal.txt
4594617 lrwxrwxrwx 1 emir emir   11 May 19 17:39 softlink.txt -> orjinal.txt

$ cat softlink.txt
Merhaba Dunya

$ rm orjinal.txt
$ ls -lhia
total 8.0K
4620632 drwxrwxr-x 2 emir emir 4.0K May 19 17:45 .
4589605 drwxr-xr-x 7 emir emir 4.0K May 19 17:39 ..
4594617 lrwxrwxrwx 1 emir emir   11 May 19 17:39 softlink.txt -> orjinal.txt

$ cat softlink.txt
cat: softlink.txt: No such file or directory

Görüldüğü üzere orjinal dosya ile linklenmiş dosyanın inode sayısı (harddiskteki index numarası) ve dosya yetkileri farklı. Linklenmiş dosyanın içeriğini gösterdiğimizde orjinal dosyayla aynı olduğunu görmekteyiz. Sonra orjinal dosyayı siliyoruz ve linklenmiş dosyanın içeriğini göstermek istiyoruz. Burada dosya bulunamadı hatası alıyoruz. Linklenmiş dosya mevcut olmasına rağmen orjianl dosya mevcut olmadığı için bu hatayı aldık.

Hard Link Oluşturmak

Aynı işlemleri hard link oluşturmak için tekrar yapalım.

echo "Merhaba Dunya" > orjinal.txt
ln orjinal.txt hardlink.txt
cat hardlink.txt
ls -lhia
total 16K
4620632 drwxrwxr-x 2 emir emir 4.0K May 19 17:50 .
4589605 drwxr-xr-x 7 emir emir 4.0K May 19 17:39 ..
4594610 -rw-rw-r-- 2 emir emir   14 May 19 17:50 hardlink.txt
4594610 -rw-rw-r-- 2 emir emir   14 May 19 17:50 orjinal.txt

rm orjinal.txt
cat hardlink.txt
Merhaba Dunya


Görüldüğü üzere orjinal dosyayı hard link yaptığımızda inode numarası ve dosya yetkileri aynı oldu. Orjinal dosyayı silmemize rağmen yine dosyanın içeriğine erişebildik.

Hard Link İle Dosya Kopyalamak Arasındaki Fark Nedir?

Hard link işlemi dosya kopyalamaya çok benzemektedir. Peki neden dosya kopyalamak varken hard link diye bir kavram var? Bunun cevabı şudur. Bir dosyayı kopyaladığınızda kopyalanan dosya için index tablosunda yeni bir alan ve dosya içeriği için harddiskin herhangi bir bölgesinde yeni alanlar açılır. Ayrıca orjinal dosyanın içeriğini değiştirdiğinizde kopya dosyanın içeriği değişmez. Yetkileri de farklı olacaktır. Bizim buradaki amacımız aynı içeriğe farklı konumlardan ulaşmak, yeni bir dosya oluşturmak değil. Bunu yaparken de eğer linklenmiş dosyanın yetkilerinin aynı olması isteniyorsa hard link, farklı yetkilere sahip olabilecekse soft link yapmamız gerekiyor. Yine eğer dizin linklenecekse soft link yapmamız gerekiyor çünkü dizinlere hard link yapamıyoruz.

Soru, sorun ve görüşlerinizi yorumlarda belirtebilir veya [email protected] adresine mail atabilirsiniz. Herkese yeşil ve mavinin bol olduğu günler dileğiyle hoşçakalın.

 

 

 


0 yorum

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.