Linux'ta zor bağlantı nedir?


9

Etrafı araştırdım ve bir sabit bağlantı ile sembolik bağlantı (yumuşak bağlantı) arasındaki farkı anlamaya çalışıyorum.

Bu bağlantının oldukça faydalı olduğunu gördüm . Ama hala çok net değilim. Yumuşak bağlantının orijinal dosyanın bir kopyası olmadığını, ancak sabit bir bağlantının bir kopya olup olmadığını anlıyorum?

Yanıtlar:


15

Posta dağıtımından bir benzetme kullanmak için, sembolik bir bağlantı yönlendirme adresi gibidir ... bir şey sembolik bir bağlantı açmaya çalıştığında, orada saklanan "dosyayı" (kelimenin tam anlamıyla bir dosya değil) açar ve bunun yerine farklı bir ada sahip bir dosyaya bakmalı, bunun yerine diğer dosyayı açar.

Sabit bağlantı, aynı yer için iki adrese sahip olmak gibidir. (Elbette bu fiziksel dünyada gerçekten mümkün değildir). Bir şey dosya adını (adresini) okumaya çalıştığında, aynı fiziksel dosyayı (konumu) alır.

Bu nedenle, sabit bağlantı bir kopya değildir, çünkü dosya yalnızca bir kez (ancak birden çok adla) depolanır. Ancak, bir kopya gibi davranır, çünkü aynı dosyaya iki dosya adından erişebilirsiniz.


+ 1 çok güzel bir benzetme için, bu da kafamı bulaştırmaya çalışırken benim için işleri basitleştirecekti.
John Gardeniers

1
+1, ancak iki küçük ayrıntı: 1) Gerçek dünyada aynı yer için birden fazla adrese sahip olmak mümkündür, sadece yaygın değildir. 2) Belki de bir sabit bağlantı ve bir kopya arasındaki en önemli fark, eğer varsa /foove /bardeğiştirmenin /foo, /bareğer hardlinks ise de değişeceğidir (çünkü aynı dosya için iki isim olduklarından), ancak kopyalar (çünkü bunlar tamamen bağımsız iki dosyadır).
Dave Sherohman


3

Sabit bir bağlantı yaptığınızda, aynı dosya iki farklı yerde görünür. Bir dosya gerçekten sadece disklerdeki bir veri bloğu kümesine bir referanstır, bu nedenle sabit bir bağlantı başka bir referans ekler. Dosyalar nadiren gerçekten silinir; referanslar kaldırılmıştır, böylece verilere erişmek imkansızdır. Bu nedenle, sabit bağlantı olarak oluşturduğunuz bir dosyayı sildiğinizde, diğer orijinal dosya kalır ve bunun tersi de geçerlidir.

Öte yandan, bir sembolik bağlantı belirli bir ada sahip bir dosyaya erişim yönüdür. Herhangi bir programa "Bu dosyayı kullanmak istiyorsanız, orada" der. Bu nedenle, sembolik bağlantının hedefini silerseniz, sembolik bağlantı kopar. Ve bağlantıyı silerseniz, hedef etkilenmez.


2

* Nix sistemindeki bir dosyanın iki bölümü vardır. biri veri kısmı ve diğeri inode. inode meta (HDD'de depolandığı konum gibi verilerle ilgili bilgiler) bilgilerini depolar. Sabit bağlantı bu düğümün tam bir kopyasını oluşturur. Sym link ise gerçek inode inode değerini gösteren bir inode yaratır. Yani sabit bağlantıdaki inode verileri hedefle aynıdır ancak sym bağlantısındaki farklı verilerdir. Bu nedenle, uzun hikayeyi kısaca belirtmek gerekirse, sym bağlantıları ve sabit bağlantılar, dosya verisine değil, inode verilerinin içeriğine göre farklılık gösterir. Bu benim sym link ve hard link arasındaki farkı anlamak. Başlangıçta bunu anlamak zor bir zaman geçirdim, çünkü bu daha geliştirici bir şeydir ve ben bir geliştirici değilim. Oh bilgili olanlar, yanılıyorsam lütfen beni düzeltin.


3
* Nix içindeki "dizin", dosya adlarının ve inode numaralarının listesidir. Sabit bağlantılar, aynı inode numarasına sahip iki dizin girdisidir ve bu nedenle inode kopyalarına değil, aynı inode anlamına gelir. Symlink, belirli bir inode'a değil, başka bir dizin girişine (ada göre) işaret eden bir dizin girdisidir. (Tamam, aslında bir inode var, ama bu inode veri dosyasına değil dizin girişine atıfta bulunuyor.)
Randy Orrison
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.