Sabit bağlantıların bazı tipik kullanımları nelerdir?


9

Windows'a alışkın olan herkes sembolik bağların ne olduğunu ve nasıl kullanıldığını hayal edebilir. Diğer taraftan, sabit bağlantı kavramı Windows için yabancıdır (doğru muyum?).

Linux'taki sabit bağlantıların tipik kullanımlarının ne olduğunu bilmek istiyorum. Nasıl çalıştıklarındaki farkı açıklayan farklı yayınlar gördüm. Ne soruyorum bir kullanıcı sembolik bağlantılar yerine sabit bağlantılar kullanarak daha iyi olurdu bazı tipik durumlar nedir?


3
Bu soru Unix ve Linux stackexchange hakkında soruldu: Neden sabit bağlantılar var?
Flimm

Yanıtlar:


9

İki veya daha fazla yerde tek bir dosyaya ihtiyacım olan sabit bir bağlantı kullanıyorum, bir gün konumlardan birini silmek istediğimi tahmin ediyorum ve dosyaya bir bağlantım olduğunu unutabilirim. Bu, artık var olmayan bir dosyaya sembolik bir bağlantı vermemi engelliyor.

Açıklama:

Bir dosya adı aslında dosyaya sabit bir bağlantıdır. Bu nedenle, her dosyanın normalde "dosya" adı olarak düşündüğümüz en az bir sabit bağlantısı vardır. Bir dosyayı sildiğinizde, aslında sabit bağlantısını kaldırırsınız (dolayısıyla rm"sil" yerine "kaldır" adı ). Bir dosyanın son sabit bağlantısı kaldırıldığında, sistem dosyayı da siler.


7

Sabit bağlantılar sağlar ...

  • birden fazla ada sahip tek bir yürütülebilir dosya.

    Misal:

    ls -l /bin | grep -v ' 1 ' | sort/binsizin için olanları listeleyecektir . Sonuç ...

    -rwxr-xr-x 2 root root     63 2010-01-19 21:49 gunzip
    -rwxr-xr-x 2 root root     63 2010-01-19 21:49 uncompress
    -rwxr-xr-x 3 root root  26300 2011-12-12 22:40 bunzip2
    -rwxr-xr-x 3 root root  26300 2011-12-12 22:40 bzcat
    -rwxr-xr-x 3 root root  26300 2011-12-12 22:40 bzip2
    

    Bunzip2 bzcat ve bzip2 3 dosya yerine aynı dosyayı kullanır ve dosya içinde ne yapılacağı ayrılır. Kod tasarrufu sağlar ve daha az kod, daha az olası hata ve daha kolay bakım anlamına gelir.

  • birkaç yoldan erişilecek tek bir dosya.

    Örneğin, yüklenen her paket için / usr / share / doc / $ packagegename dizini oluşturan bir paket yöneticisini ve bu dizinin içinde paketin lisans bilgilerini içeren LICENSE adlı bir dosyayı ele alalım. Tipik bir Linux sistemindeki birçok paket GPL lisanslıdır, bu nedenle dosya sisteminde 200 GPL kopyası yerine yalnızca bir kopya ve 199 bağlantı olabilir. ptman @ ServerFault

Sabit bağlantıların burada çalışmasının nedeni (ve yumuşak bağlantılar çalışmaz): sabit bağlantıların yalnızca 1'inin kaldırılması dosyanın kendisini kaldırmaz.


2
"Örnek: bir move ( mv), bir copy ( cp) + a remove ( rm) öğesidir ." Bu yalnızca kaynak ve hedef farklı bağlarda olduğunda geçerlidir. Aksi takdirde, bir mvdosya değil, yalnızca ad taşınır.
Paddy Landau

1
Teknik olarak gitmek istiyorsanız: mv adı değil, inode değerini değiştirir. Ama
haklısın

3
Biraz konu dışı kalıyoruz, ancak bunu test ettim. Dosya aynı bağlantıda kaldığı sürece mvyalnızca adı değiştirir; inode aynı kalır.
Paddy Landau

Bu, neden sadece semboller kullanamayacağınızı açıklamıyor - ki bu da birkaç baytlık ekstra veri için kaydedebileceğiniz. Bu, bu yanıtta doğru bir şekilde ele alınmıştır .
Ken Sharp
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.