Ö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