Yumuşak (sembolik) bir bağlantı ile sert bağlantı arasındaki fark nedir?


59

Artık Vista'da da yumuşak bağlantılar oluşturabileceğinizi duydum . Öyleyse, UNIX / Linux / Vista'daki yumuşak (sembolik) bir bağlantı ile sert bağlantı arasındaki fark nedir?

Birini diğerinden kullanmanın avantajları var mı? Yoksa sadece iki farklı amaca mı hizmet ediyorlar?


Pratik açıdan cevap, neredeyse her zaman sembolik bir bağlantı kullanmak istediğinizdir. Anladığım kadarıyla, sabit bağlantılar çoğunlukla, özellikle ardışık anlık görüntülerin gelecekte değişmesi muhtemel birçok özdeş dosyaya sahip olduğu anlık görüntüler ve artımlı yedeklemeler gibi şeylerde alanı korumak içindir.
Ryan Thompson 08.09

Bu Unix ve Linux'a mı taşınmalı? Bkz. Unix.stackexchange.com/questions/9575/…
ripper234

2
Hayır, taşınmamalı. Orijinal soru yalnızca Unix'e özgü olmadığından - Windows sert ve yumuşak bağlantıları destekler.
Richard West

1
Eğer yumuşak linki kullanınız eğer bazı uygulamalar (kötü ve bazen) kıracak - expecially dizinlerinin: softlink indirgenmedikleri ve alacak ne olduğunu ve uygulama demek, karşılaştırdığında /var/opt/log/appnamedereferenced değeri ile (kendi yapılandırma), diyelim ki /apps/appname/logs, bu şikayet edecek bu bir eşleşme değil. Bunun düzeltilmesi mount --bind, orijinal dizini yeni konuma yeniden ayarlamak için (Linux'ta) kullanmaktır.
warren

1
Sadece diğer cevaplarda yer alan birkaç noktayı silmek için ... Windows sabit bağlantılar yapabilir (Unix'ten biraz daha farklı davrandıklarına inanıyorum). Mklink komutuna ve h argümanına bir bakın. (Komut satırına mklink yazarsanız, temel sözdizimini içeren yardım dosyasını görürsünüz.)

Yanıtlar:


68

Bir hard link geleneksel olarak aynı dosya sistemi yapılarını (unixspeak'te inode) paylaşırken, soft link bir yol ismi yönlendirmedir.

  • Hardlinks aynı dosya sisteminde olmalı, softlinks dosya sistemlerini geçebilir.
  • Sabitlenmiş dosyalar, ikisinden birini taşıdığınızda bile bağlantıda kalır (kopyala ve sil mekanizmasını tetikleyen birini başka bir dosya sistemine taşımazsanız). Yumuşak bağlantılı dosyalar, hedefi (orijinali) hareket ettirirseniz ve bazen bağlantıyı hareket ettirdiğinizde kırılır (Mutlak veya göreceli bir yol mu kullandınız? Hala geçerli mi?).
  • Sabit linkli dosyalar eşittir, orijinali yumuşak bağlantılarda özeldir ve orijinali silmek verileri siler. Tüm bağlantılar silinene kadar veriler kaybolmaz .
  • Yumuşak bağlantılar herhangi bir hedefi işaret edebilir , ancak çoğu OS / dosya sistemi, dosya sistemi grafiğindeki döngüleri önlemek için hardlinking dizinlerine izin vermez ( hard linkler olan unix dizinlerindeki .ve ..girişleri hariç ).
  • Yumuşak bağlantılar, dosya sistemi yürüme araçlarından özel destek gerektirebilir. Okuma bağlantısını (2) okuyun .

(Bazı detaylar mat1t tarafından tekrar akla getirildi . Teşekkürler.)


Güzel özeti. Her Linux kullanıcısı bunu bilmelidir (zor bağlantılar çok nadir olsa da).
Artem Russakovskii

dmckee'nin cevabı , anlambilim hakkındaki ayrıntılara tam olarak sahiptir. Ekleyeceğim tek ayrıntı, daha yüksek düzeyde olanlara ilişkin bir açıklama: yumuşak link kendi başına bir dosya iken, hard link mevcut verilere işaret eden bir dizin girişidir. Vikipedi sert ve yumuşak bağlantılar hakkında daha fazla ayrıntıya sahiptir .
Bay Shiny ve Yeni 宇 宇

güzel özetlemek, çok yararlı
Razique

9
Ayrıca, hard linklerin izinleri ve mülkiyet bilgilerini paylaştığı not edilmelidir.
Corey S.

6
Lütfen 2 sabit bağlantı adının otomatik olarak oluşturulduğunu ekleyin. ve .. her klasör oluşturduğunuzda. Linux'ta bunlar bir klasöre yapılan tek geçerli linklerdir.
Mircea Vutcovici

10

Özet, sembolik / kısa bir bağlantının ilk dosyanın konumuna bir kısayol görevi görmesine karşın, sabit bağlantı ise diskteki dosyanın kısayoludur.

Bir yazılım bağlantısının hedefini silerseniz, yazılım bağlantısı çalışmayacaktır, ancak bir hard linkin bir kopyasını silerseniz, dosya tüm linkler kaldırılıncaya kadar diskte kalır. Aslında tüm dosya isimleri diskteki dosyaya sabit bağlantılar halindedir.

Belli bazı kısıtlamalar da var; örneğin, klasörlerin sert linklerini oluşturabileceğinizi sanmıyorum, ancak bunlara yumuşak linkler oluşturabilirsiniz. Yumuşak bağlantılar ayrıca farklı sürücülerdeki ve bölümlerdeki dosyalara / klasörlere işaret edebilir, oysa sabit bağlantılar olamaz.


-1

MS Windows sistemi her zaman yumuşak bağlantılar kullanır (kısayollar). Başka bir deyişle, link basitçe dosya konumuna işaret eden bir kısayol görevi görür. Orijinalin yeri taşınırsa, bağlantı kopar. Ayrıca, kısayol için yaptığınız (izinleri değiştirmek veya kısayolun adını değiştirmek gibi) asıl dosyayı etkilemez.

Dolayısıyla soru yanlış bir varsayımla başladı. Evet, Vista softlinks kullanıyor, fakat yeni değil, bu bir MS kısayolu.


3
Hayır, NTFS, sabit bağlantıları destekler ve NTFS 3.1'den beri vardır (XP / 2003'ten bu yana kullanılan sürüm).
Chris S
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.