Yanıtlar:
Bir dosyayı kopyalarsanız, içeriği çoğaltacaktır. Öyleyse, tek bir dosyanın içeriğini değiştirirseniz, bunun diğeri üzerinde etkisi olmaz.
Bir hard link yaparsanız, aynı içeriğe işaret eden bir dosya oluşturulur. Dolayısıyla, dosyalardan birinin içeriğini değiştirirseniz, değişiklik her ikisinde de görülür.
Sabit bağlantı temelde aynı dosya için ikinci bir dosya adıdır. Bu nedenle, bir dosyayı sabit bağlarsanız, dosya sisteminde yalnızca bir kez olacak ve bu nedenle yalnızca bir kez yer kaplayacaktır. Eğer disk alanından tasarruf etmek istiyorsanız, bunu kullanmak istersiniz.
Unix dosya sistemlerinde, her dosya adı diskteki verilerin bulunduğu yere inode adı verilen zor bir bağlantıdır. Mevcut bir dosyaya yeni bir sabit bağlantı oluşturursanız, aynı veriye başka bir işaretçi olduğu için diskte fazladan yer kalmaz. Verileri bir veya başka bir bağlantıyla düzenlerseniz (veya inode'u doğrudan düzenlerseniz), her iki dosya da değişir.
Sistem, her inode'un kaç tane sabit linke sahip olduğunu tutar. Bağlantı sayısı 0 olduğunda, dosyaya artık erişilemez ve verinin üzerine yazılması güvenli olarak işaretlenir. Böylece, 2 sabit bağlantı içeren bir dosya verildiğinde, iki bağlantıdan birini silerseniz veriler silinmez. Sadece ikisini de silerseniz, veriler kaybolur.
Komuta -i
geçiş düğmesini kullanarak inode dosya sayısını görebilirsiniz ls
.
Yumuşak bir link ise, dosya adına göre başka bir dosyaya işaret eder. Orijinal dosyayı taşır ya da silerseniz, bağlantı kopar.
Sorunun “neden hiç zor bağlantılar kullanmak isteyeyim?” Diye sorduğu kısma referansla:
Sabit bağlı dosyalar (veya bunun için yumuşak (sembolik) bağlantılı dosyalar, farklı amaçlarla maskelenmek için yapılabilecek tek bir çalıştırılabilir dosyaya sahip olmanın yararlı bir yolunu sunar.
Yani, hangi seçeneklerin çalıştırılabileceğini belirlemek için kodun çağrıldığı ad incelenebilir. Bu, biraz farklı amaçlar için gereken tüm ortak işlevselliğe sahip büyük bir kod parçasının geliştirilmesine ve paketlenmesine olanak sağlar. Kullanıcının bakış açısına göre, "neyin" çalıştırılacağı (isme göre) özelliği seçimleri ve sunumu daha yönetilebilir bir seçenekler alt grubuyla sınırlar.
Klasik bir örnek LVM'dir. Bir zamanlar HP-UX çeşitli yürütülebilir için sabit bağlantılı dosyaları (kullanılan örneğin vgdisplay
, vgcreate
, vgextend
vb Bugün, Linux gibi, bu komutlar aslında sembolik (yumuşak) bağlantılarıdır lvm
çalıştırılabilir.