NTFS Bağlantı Noktaları ile Sembolik Bağlantılar arasındaki fark nedir?


140

Yüksek düzeyde, NTFS Bağlantı Noktaları ve Sembolik Bağlantılar arasındaki tek belirgin fark, Bağlantıların yalnızca dizin olabilmesi, SymLinks'in de dosyaları hedeflemesine izin verilmesidir.

İkisi arasında başka hangi farklar var?

(Not, bu soruyu daha önce gördüm ve aradığım şey biraz farklı - bu soru bir profesyonel ve con listesi arıyor, bir dizi teknik farklılık arıyorum)

Yanıtlar:


88

Sembolik bağlantılar daha fazla işlevselliğe sahipken, kavşaklar sınırlamaları nedeniyle neredeyse eski bir özellik gibi görünmektedir, ancak bu sınırlamaların güvenlikle ilgili sonuçları, özellikle bir kavşağın sembolik bir bağlantı yerine tercih edilmesidir. Uzaktan hedefleme, sembolik bağlantıları daha işlevsel hale getirir, ancak yerel yollarla kısıtlandıkları için kavşaklar daha güvenlidir . Yani, yerel bir bağlantı istiyorsanız ve mutlak bir yolla yaşayabiliyorsanız, muhtemelen bir kavşakla daha iyi durumdasınızdır; aksi takdirde, eklenen yetenekleri için sembolik bir bağlantı düşünün.

resim açıklamasını buraya girin

** Hız / karmaşıklık farkı ifadesi , NTFS yeniden inceleme noktalarındaki Wikipedia girişindeki doğrulanmamış bir ifadeden gelir (iyi bir okuma). *


Diğer NTFS Bağlantı Karşılaştırmaları

İşte konuyla ilgili diğer karşılaştırmalar, ancak kavşakları düşünürken yanıltıcı olabilir, çünkü yukarıda listelediğim faydaları listelemiyorlar.

Buradan alınmıştır (iyi bir tanıtım okuması)

resim açıklamasını buraya girin

Gönderen mklink üzerinde SS64 sayfa

resim açıklamasını buraya girin


Terminoloji hakkında yorumlar

Kavşaklar Reparse Noktalarıdır (sembolik bağlantılar olarak tanımlanabilir)

NTFS Kavşakları ve NTFS Sembolik bağları, aynı şeyleri (yeniden ayrıştırma noktaları) gerçekten aynı şekilde yapıyorlar; Aslında, teknik olarak, bir Kavşak kelimenin daha genel anlamında bir "sembolik bağ" dır ve bazen belgeler burada olduğu gibi bir Kavşağa sembolik bir bağ diyebilir . Bu gibi durumlarda, "sembolik bağlantı" bir kavşaktan farklı olan NTFS Sembolik Bağlantı anlamına gelmez (aşağıya bakınız).

NTFS

OP bunu belirtmesine rağmen, "sembolik bağ" ın NTFS'ye özgü olmayan çok genel bir terim olduğunu belirtmek gerekir. Dolayısıyla, bu karşılaştırma NTFS Kavşakları ve NTFS Sembolik Bağlantıları hakkındadır.


Bağlantı Noktaları ve Sembolik Bağlantıların her ikisi de Yeniden Ayrıştırma Noktalarıdır, ancak Bağlantı Noktaları kesinlikle Sembolik Bağlantılar değildir! Oh ve tablo da bir şekilde yanlış. Bir Birleşme Noktasının hedefi yaratıldıktan sonra var olmalıdır, ancak gerçekten daha sonra kaldırılabilir.
0xC0000022L

3
@ 0xC0000022L Evet, söylediğiniz şey bir NTFS Bağlantısının bir NTFS Sembolik Bağlantısı olmaması durumunda haklısınız. İfadelerimin bunu söylemek için nasıl yanlış anlaşıldığını görebiliyorum. Açıklığa kavuşturmak için düzenleyeceğim, ancak mesele şu ki, bu bağlamda, "sembolik bağlantı", Kavşakların da ait olduğu daha genel "sembolik bağlantı" fikrinin özel uygulamaları olan NTFS Sembolik Bağlantıları ifade eder. Gönderdiğim bağlantıyı takip ettin mi? Bir NTFS Bağlantısının bir NTFS Sembolik Bağlantısı olduğu söylenmez, ancak "sembolü bağlantı" terimi bir bağlantıyı tanımlamak için kullanılabilir.
u8it

yeterince adil, kavramdan bahsederken, bunu düşünmenin bir yolu olabilir. Ancak gerçekten, yeniden inceleme noktası kavramını eve getirdiğini düşünüyorum, çünkü NT nesne yöneticisinde neler olup bittiğini çok daha fazla açıklıyor ve bu kavram, örneğin Unix'te kullanılan sembolik bağlantıların ötesine geçiyor (örneğin sıradan dosyalar) özel bir bayrakla). Ve evet, kavşak noktalarının "dizinler için semboller" olarak açıklandığını duydum.
0xC0000022L

@ 0xC0000022L Ayrıca, tablonun yanlış olduğundan bahsettiğiniz sorunu da görmüyorum. "Var olmayan bir hedefe işaret edebilir" özelliğinden mi bahsediyorsunuz? En azından bir kavşak oluştururken bunun yanlış olduğunu mu söylüyorsunuz? Belirli bir ortamda (belki Windows XP veya güvenlik ayarları nedeniyle) durumdan eminseniz, bunu not edeceğim, ancak deneyimime ve belgelere (ve Windows 10'da onayladım) bir kavşak her zaman var olmayan bir yolu hedefleyin, hatta oluşturma üzerine ... bunu kısıtlayan güvenlik ayarları olabilir.
u8it

Kavşaklar eski değil. Symlinks değil montaj noktaları (bağlama / hacim) uygularlar. Bir yol bir açıkta ayrıştırıldığında, sistem bağlama noktalarını çaprazlayan bağıl bağlantıları değerlendirmek için çapraz kavşakları hatırlar. Bu geçişlerin bir kavşağı normal bir dizinmiş gibi işlemesi gerekirken, bir sembolik bağlantı hedef yolu olarak ayrıştırılır. Örneğin, "C: \ bağlantı noktası" ve "C: \ symlink" ifadelerinin her ikisini de "E: \ spam" hedefini ve göreli symlinkini "E: \ spam \ eggs.txt" hedefleri ".. \ eggs.txt" deyin. Sonra "C: \ junction \ eggs.txt", "C: \ eggs.txt" olarak ve "C: \ symlink \ eggs.txt" ise "E: \ eggs.txt" olarak çözümlenir.
Eryk Sun

35

Farklılıklar için en yararlı bulduğum yerler:

http://blogs.msdn.com/b/junfeng/archive/2006/04/15/576568.aspx

http://www.hanselman.com/blog/MoreOnVistaReparsePoints.aspx

Postulate: Symlink, Unix'teki Hardlink için olduğu gibi Windows'ta birleşme noktasıdır.

http://en.wikipedia.org/wiki/Symbolic_link#Windows_7_.26_Vista_symbolic_link

Windows 7 ve Windows Vista, mklink komut satırı yardımcı programı ile hem dosyalar hem de dizinler için sembolik bağlantıları destekler. Bağlantı noktalarının aksine, sembolik bir bağlantı bir dosyayı veya uzak Sunucu İleti Bloğu (SMB) ağ yolunu da işaret edebilir. Ayrıca, NTFS sembolik bağlantı uygulaması, dosya sistemleri arası bağlantılar için tam destek sağlar. Ancak, ana bilgisayarlar arası sembolik bağlantıları etkinleştiren işlev, uzak sistemin de onları desteklemesini gerektirir ve bu da Windows Vista ve sonraki Windows işletim sistemlerine desteklerini etkili bir şekilde sınırlar.

http://www.tuxera.com/community/ntfs-3g-advanced/junction-points-and-symbolic-links/

Windows tarafından oluşturulan sembolik bir bağlantı, bir dizin bağlantısına çok benzer, ancak bir dizin bağlantısının aksine, bir dosyaya veya uzak ağ dosyasına veya dizine işaret edebilir. Hedef, sembolik bağlantı konumuna göre bir yol veya geçerli hacimdeki veya başka bir yoldaki mutlak bir yol olarak tanımlanabilir. Ayrıca, dosyalara sembolik bağlantıların dizinlere sembolik bağlantılardan farklı olduğunu ve hedefin tanımla eşleşmesi gerektiğini unutmayın.



14
Kabul edilen cevap zaten üç yaşında, ancak belirtmek isterim ki, NFTS bağlantı noktaları alıntılanan postülatın ima ettiği gibi Unix'teki hardlinklerle karşılaştırmaz. Bir kavşak noktası bir dosyaya başvuramadığı, ancak bir sabit bağlantının başvurabileceği için bu açıktır. NTFS ayrıca (bağlantılardan farklı olan) sabit bağlantıları da destekler ve az çok Unix sabitleriyle karşılaştırılabilir.

@elgonzo Tamamen katılıyorum. AFAIK bir Unix sabit bağlantısı yalnızca bir dosyaya başvurabilir, bu nedenle NTFS dizin bağlantısına hiç benzemez.
Franklin Yu

20

İşlevsel olarak, pencerelerde, bir kez oluşturulduğunda, gerçek bir fark yoktur. Ancak, yapabilecekleri arasında aralarında önemli farklılıklar vardır. Bağlantılar yalnızca aynı sürücüde veya farklı sürücülerde klasörlere bağlantı oluşturmak için kullanılabilir, ancak yalnızca bu sürücüler yerel sistemdeyse (ağ üzerindeki bir klasöre bağlantı bağlantısı oluşturamazsınız.) Sembolik bağlantılar ancak, aynı kısıtlamalara sahip değildir. Sembolik bağlantılar dosyalara veya klasörlere bağlanmak için kullanılabilir ve bu dosyalar veya klasörler aynı sistemde (aynı sürücü veya farklı sürücüler) veya bir ağ paylaşımına yerleştirilebilir ve ilgili konum simgelerini ("\\ system2) kullanabilir \ foldera \ file.txt "," d: \ foldera \ file.txt "," \\ system2 \ foldera "," d: \ foldera "veya" d: \ foldera \ folderb .. "

Özetlemek gerekirse: Kavşaklar Noktalar yalnızca yerel sistemdeki klasörlerle sınırlıdır, Sembolik Bağlantılar ise UNC yolu veya yerel sistem üzerinden erişilebilen klasörlere veya dosyalara bağlantılar oluşturabilir ve bu konumların belirlenmesinde daha fazla çok yönlülük sağlar. Symbolic Links temel olarak hem Bağlantı Noktaları hem de Sabit Bağlantılar için daha çok yönlü bir alternatiftir. Ayrıca, çapraz platform UNC yollu bağlantı oluştururken Sembolik Bağlantılar Unix ve Linux ile uyumludur.

Umarım bu, sorunuza tatmin edici bir şekilde cevap verir. Yazım hatalarını düzeltmek için düzenlendi.


10

Link Shell Uzantısı, http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html , birçok bağlantı türünü oluşturmak ve görüntülemek için harika bir araçtır. Ayrıca mükemmel belgelere sahiptir.

[Tam kurulumda, gelişmiş bir bağlantıya bakıyorsanız yeni özellikler sekmesi ekler. Ayrıca, çeşitli bağlantı türleri için simge yer paylaşımı okları ekler - bunlar görünmüyorsa SSS bölümüne gidin; Windows yalnızca on üç kaplamayı destekler; bir kayıt defteri geçici çözümü gösterir. Bilginin yararlılığına bir örnek: Bir klasör olduğunu düşündüğünüz şey için ayrıcalıklar elde etmeyi başarısız bir şekilde denemek, ancak aslında Windows'un eski sürümleriyle uyumluluk amacıyla kullanılan sistem tarafından sağlanan bir Bağlantı Bağlantısıydı.]

Bağlantılar ve Sembolik Bağlantılar, yerel bir sistemdeki bir dizin için oluşturulduğunda esasen aynı davranır.

Ancak:

Bir ağ üzerinde farklı hareket ederler. Bu bağlantı şu davranışı açıklar: /superuser/343074/directory-junction-vs-directory-symbolic-link

Junction Links'i "işletim sistemini konum olarak kandıracak kısayollar" olarak görüyorsanız, kullanımları ve onları neyin ihlal ettiği konusunda iyi bir pratik benzetmeye sahip olursunuz. Temel fark, Sembolik Bağlantılar veya Kavşaklar kopyalarsanız, hedefi (kısayollar gibi) yalnızca işaretçiyi içeren dosyayı kopyalar. Kısayollarda olduğu gibi, hedef dosyaları / klasörleri kaldırmadan Sembolik veya Bağlantı Bağlantılarını silebilirsiniz. [Sabit Bağlantılar, dosya yalnızca geri dönüşüm kutusundan olmak üzere son bağlantının kaldırılmasıyla silinir. Sabit Bağlantılar için hedefi veya referans sayısını görmek üzere bu bağlantılardan herhangi biri için LSE'deki özellikler etiketine bakın.]

Sabit Bağlantılar veya Kısayollar, tüm hedefi kırmak veya kopyalamak gibi hiçbir yan etkisi olmadan taşınabilen tek bağlantı türleridir. Hedefin taşınması her zaman bağlantıları keser, ancak özellikler sekmesinde (LSE ile gösterilir) kolayca güncellenebilir veya karmaşıksa LSE ile yeniden oluşturulabilir.

Sembolik Bağlantıların oluşturulması için yönetici ayrıcalıkları gerekirken Kavşaklar gerektirmez. Bu artı, kapsamlı, dahili işletim sistemi kullanımı, Windows'un bunları sezgisel, beklenen bir şekilde ele aldığını düşündürmektedir. [Sistem klasörlerinden beklenmeyen yan etkilere (Win 10 deneyiminden) biraz dikkatli olun.]

[Bağlantı Kabuğu Uzantısının yedeklemeye özgü özelliklerinden bazıları son derece kullanışlıdır - kısacası, beklemede olan yedekleme amacıyla standart klasörlerde birkaç tür güncelleştirilebilir sembolik bağlantı yapısı oluşturabilir.]


Ve Link Shell Extension harika bir araç gibi görünüyor. Ayrıca ln.exe adlı ilgili hafif bir yardımcı program da var ... her ikisini de kullanmasanız bile, sadece web sitesinin basit kullanıcı kılavuzunu okuyarak çok şey öğreneceksiniz.
u8it

Sanırım 2 Nisan 2016'daki düzenlemeleriniz daha az netleşti, Clay. Bunun gibi bir şey demek istediğinizi düşünüyorum: "Bu ve 'kısayol' dosyaları arasındaki temel fark, siz ... yalnızca işaretçiyi içeren dosyayı değil, hedefi kopyalar (bir kısayolu kopyalarsanız ne olur) dosyası) "
Jon Coombs

4

Sembolik bağlantılar Windows'ta çok yakın zamanda tanıtıldı: Vista'dan olduğu gibi.

Sembolik bağlantılar, mevcut NTFS "Reparse Point" teknolojisine bir alternatif olarak görülmemelidir.

Microsoft, Symbolic bağlantılarının tek amacının Unix ile daha uyumlu olmak olduğunu açıklar.

MSDN: " Sembolik bağlantılar UNIX ile taşıma ve uygulama uyumluluğuna yardımcı olmak için tasarlanmıştır. Microsoft, sembolik bağlantılarını tıpkı UNIX bağlantıları gibi işlev görmek üzere uyguladı. "

Vista aynı zamanda kendi işlevselliği için bağlantıları kullanan firt işletim sistemidir. Eski klasör adlarıyla uyumlu olmak C:\Documents and Settings, artık bir bağlantıdır C:\Users.

İlginç bir şekilde, Vista Sembolik bağlantılar sunmasına rağmen, bu " Documents and Settings" numara aslında eski düz bir kavşaktır.


2
Bu cevap sembolik bağlar ve kavşaklar arasındaki farklar hakkında hiçbir şey söylemez. (Bu nedenle, bu soru için gerçekten geçerli olduğunu sanmıyorum)
Billy ONeal

Windows Vista'dan itibaren Sembolik bağlantı Kavşakların yerini almaktadır (ayrıca bildiğimiz gibi her ikisi de yeniden ayrılma noktalarıdır)
Aravind

2

U8it'in mükemmel cevabına ek olarak:

Windows 10'da Windows Dosya Gezgini'ndeki davranış farkıyla ilgilenen varsa :

hedef dizine sürükleyip bırakın:

  • symbolic link: symbolic linkhedef dizine taşır
  • junction: original directoryhedef dizine taşır

sağ fare tıklama + özellikleri:

  • symbolic link: kısayol özelliklerini gösterir
  • junction: original directoryklasör özelliklerini gösterir

sol bölmede sol moue tıklaması (dizin ağacı):

  • symbolic link: seçer original directory
  • junction: seçer junction

Sembolik Bağlantıların oluşturulması için yönetici ayrıcalıkları gerekirken Kavşaklar gerektirmez.
Jinjinov

Windows 10 Sürüm 10.0.17134.1130: Explorer'daki kavşak taşındığında yalnızca orijinal dizinin içeriği taşınır. Ağaçtaki sembolik bağlantıya sol tıklamak orijinal dizini seçmez.
SalgoMato
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.