NTFS sabit linkleri ile dizin birleşimleri arasındaki fark nedir?


79

Başlık her şeyi söylüyor ... fark nedir? Bir tanesini ne zaman, diğerini ne zaman kullanırım?

Eklendi: Not Kavşak noktaları , Sabit bağlantılar ve Sembolik (yumuşak) bağlantıları NTFS üç ayrı şeyler vardır.


2
Microsoft belgelerine göre, üç ayrı kategori vardır: Hard link: msdn.microsoft.com/en-us/library/aa365006%28VS.85%29.aspx ; Kavşak (yumuşak bağlantı): msdn.microsoft.com/en-us/library/aa365006%28VS.85%29.aspx ; Sembolik bağlantı: msdn.microsoft.com/en-us/library/aa363878%28VS.85%29.aspx .
Josip Med

Yanıtlar:


33

NTFS veri dosyaları, tüm özniteliklerinde bir kimliğe sahip bir "inode" olarak depolanır ve dosya adları inode'u gösterir. Tüm dosyalar bir + hardlinke sahiptir. Bazı araçlar, aynı inode'yu gösteren ve ona işaret eden adların sayısının olduğu bir ad ekleyebilir (hardlinks). Sayı sıfıra giderse, işletim sistemi dosyayı, inode'u siler.

LN gibi özel araçlar, kendilerini işaret eden bir dosya adı kullanarak varolan düğümlere işaret eden ek dosya adları oluşturabilir. Tarihler ve saatler dahil olmak üzere tüm dosya özniteliklerinin dosya adı yerine inode ile saklandığını unutmayın.

(Ekstra) bağlantılar, farklı adların aynı verileri göstermesini, okunmasını veya yazılmasını istediğinizde kullanışlıdır. Yerden ve ek yükten tasarruf ederler. Bununla birlikte, farklı isimler varsayan programları farklı verilere işaret ediyorlar. Örneğin, kopyalanan dosyalara yapılan referansları tek bir dosyaya sabit bağlantılar ile değiştirirseniz, sahip olduğunuz tüm yedeklemeleri kaldırmış olursunuz! Windows işletim sistemi, farklı isimlerin farklı bit kümelerine işaret ettiğini varsayan bir programdır.

Hardlinks aynı fiziksel ve mantıksal birimde olması gerekir.

Onlar için yararlıdır:

  • Windows yalnızca 256 karakteri desteklediğinden dolayı yol uzunluklarını azaltmak.

  • yinelenen veri dosyalarının depolama alanını azaltma - örneğin, birden çok tam dizin ağacı bulunan bir bölümün birden fazla yedeğini alabilir, ancak önceki yedeklemeden bu yana değişmemiş dosyalar için sabit bağlantılar oluşturabilirsiniz.

Kavşak noktaları daha dağınıktır ve Reparse Points (anlamadığım) kullanır. Farklı fiziksel veya mantıksal hacimlere işaret edebilirler ancak aynı bilgisayarda olmaları gerekir. Görünüşe göre, dizinler için sembolik bağlantılar gibi kullanılabilirler, aynı varış yeri için ikinci bir isme izin verirler, ancak sadece bir cilt yerine tek bir bilgisayarla sınırlıdırlar.

Yol uzunluklarını azaltmak veya sabit kodlanmış dizin adlarına sahip birkaç programla çalışmayı basitleştirmek için kullanışlıdır.

Aynı uyarılar! Birçok program farklı adlar varsayar = farklı dosyalar.

Ve sonra sembolik bağlantılar (ağlar arasında gidebilir), kısayollar ve PIF'ler var ve…

Ayrıca Microsoft'tan bazı bilgiler :

Temel olarak, yalnızca aynı birimdeki dosyalar (disk sürücü harfi) için sabit bağlantılar ve yalnızca aynı bilgisayardaki dizinler için bağlantı noktaları (farklı yerel birimlere yayılabilir) diyorlar.


1
Sembolik bağlantı sabit disk (NTFS) düzeyinde çalışıyor mu, yoksa Windows işletim sistemi düzeyinde bir kavram mı?
IsmailS

48

Hızlı Tanımlar:

Sembolik bağlantı: Aynı veya farklı birimdeki bir dosyaya veya dizine (sürücü harfiyle) veya uzak bir dosyaya veya dizine (yolunda UNC kullanarak) bağlantı.

Sabit Bağlantı: Yalnızca aynı birimdeki (sürücü harfi) bir dosyaya bağlantı. Her dosyanın (dosyanın verileri) en az 1 adet sabit linki vardır (dosyanın adı). Tüm sabit bağlantıları silmek, dosyayı etkili bir şekilde siler.

Kavşak: Aynı veya farklı birimdeki (sürücü harfi) bir dizine bağlantı, ancak uzak bir dizin için değil


Detaylar:

Windows Vista / 7'de NTFS birimlerinde çalıştığınızı varsayarak, üç tür Bağlantıyı da oluşturmak için komut satırı aracını MKLINK kullanabilirsiniz:

MKLINK [[/D] | [/H] | [/J]] Link Target

        /D      Creates a directory symbolic link.  Default is 
                a file symbolic link.

        /H      Creates a hard link instead of a symbolic link.

        /J      Creates a Directory Junction.

        Link    specifies the new symbolic link name.

        Target  specifies the path (relative or absolute) that 
                the new link refers to.

Sembolik linkler : Sembolik link, başka bir dosya sistemi nesnesine işaret eden bir dosya sistemi nesnesidir (örneğin: dosya / dizin).

  • MKLINKsembolik bağlantılar oluşturmak için kullanılabilir. /DParametrenin kullanılması bir dizin sembolik bağı oluşturur. MKLINK, hedefin bir dosya veya dizin olup olmadığını veya hedefin var olup olmadığını kontrol etmez! Bu, potansiyel olarak bir dosyaya sembolik bağlanan bir dizin dizini veya mevcut olmayan bir dosyaya / dizine ilişkin sembolik bağlar gibi geçersiz bağlantılar oluşturabileceğiniz anlamına gelir.

  • Sembolik linkler mutlak veya göreceli linkler olabilir. Mutlak bağlantılar, yol adının her bir bölümünü belirten bağlantılardır; göreli bağlantılar, göreli bağlantı belirticilerin belirli bir yoldaki olduğu yere göre belirlenir.

  • Mutlak sembolik bağlantılar, UNC yolunu kullanan uzak bir dosya veya dizinin yanı sıra aynı veya farklı birimdeki dosyalara / dizinlere işaret edebilir. Bununla birlikte, göreceli sembolik linkler tek bir cilt ile sınırlıdır.

  • Sembolik bir bağlantı oluşturmak için yükseltilmiş ayrıcalıklar gereklidir, ancak bir kez oluşturulduktan sonra, bağlantıyı silmek için yükseltilmiş ayrıcalıklara gerek yoktur.

Sabit bağlantılar : Sabit bağlantı, birden fazla yolun tek bir dosyaya başvurduğu bir dosyanın dosya sistemi gösterimidir.

  • MKLINK/Hsadece dosyaların (dizinlerin değil) sabit linklerinin oluşturulmasına izin verir ( parametre kullanılarak ). Sabit bir bağlantı yalnızca aynı birimdeki bir dosyada oluşturulabilir.

  • Birden fazla sabit bağlantı içeren bir dosya yalnızca tüm sabit bağlantılar silindiğinde, yani bağlantı sayısı sıfıra ulaştığında silinir. Dolayısıyla, yarattığınız her dosyanın kullanmanız MKLINKveya kullanmamanız için en az bir zor bağlantısı var .

  • Bu dosyadaki herhangi bir değişiklik, kendisine referans veren bağlantıların üzerinden erişen uygulamalarda anında görülebilir. Bununla birlikte, dizin giriş büyüklüğü ve özellik bilgileri yalnızca değişikliğin yapıldığı bağlantı için güncellenir.

  • Dosyadaki özniteliklerin, o dosyaya yapılan her bağlantıya yansıdığını ve o dosyanın özniteliklerinde yapılan değişikliklerin tüm sabit bağlantılara yayıldığını unutmayın. Örneğin, belirli bir sabit bağlantıyı silmek için bir salt bağlantıdaki salt okunur özniteliğini ayarladıysanız ve gerçek dosyaya birden çok sabit bağlantı varsa, o zaman dosyadaki salt okunur özniteliği yeniden ayarlamanız gerekir. Kalan sabit bağlantılardan birinden dosyayı ve kalan tüm sabit bağlantıları salt okunur duruma getirin.

Bağlantılar : Bağlantı (yumuşak bağlantı da denir), başvurduğu depolama nesnelerinin ayrı dizinler olması ve bağlantıların aynı bilgisayardaki farklı yerel birimlerde bulunan dizinleri bağlaması nedeniyle sert bir bağlantıdan farklıdır. Aksi takdirde, kavşaklar sabit bağlantılarla aynı şekilde çalışır. Kavşaklar yeniden satış noktalarından uygulanır.

  • MKLINK/JBir dizinin (ve bunun muhtemelen geçersiz bir bağlantı olarak kabul edilmesi gerekmesine rağmen, dosyaların bile) birleşimini ( parametresini kullanarak ) oluşturmaya izin verir .

  • Bir kavşak, bir dizine sembolik bir bağlantı için eşdeğer sabit bağlantı olarak düşünülebilir. Bir birleşim bağlantısı uzak bir dizine oluşturulamaz, aynı / farklı birimdeki bir dizine oluşturulabilir.


Referanslar:

[1] Sabit Bağlantılar ve Bağlantılar: https://msdn.microsoft.com/en-us/library/windows/desktop/aa365006%28v=vs.85%29.aspx

[2] Sembolik Bağlantıların Oluşturulması: https://msdn.microsoft.com/en-us/library/windows/desktop/aa363878%28v=vs.85%29.aspx

[3] "dizin bağlantısı" vs "dizin sembolik bağlantısı"?


9

Sabit bağlantı, bir dosya için başka bir addır. A.txt adlı bir dosyanız varsa ve L.txt bağlantınız varsa, A.txt dosyasını sildikten sonra, yine de L.txt üzerinden onun verilerine erişebilirsiniz. Sadece ikisi de silindiğinde dosya gitmiş demektir.

Öte yandan, soft-link (klasör ise kavşak veya dosya ise sembolik link) denir. Bu durumda, A.txt dosyasını sildiğinizde, dosya gerçekten kaybolur. L.txt dosyasının silinmesinin dosya üzerinde hiçbir etkisi yoktur.

Sabit bağlantılar yalnızca kaynak dosyayla aynı bölümde kullanılabilir ve yumuşak bağlantılar bölümler boyunca kullanılabilir.

PS Dosya ve klasör, NTFS'in gittiği yere kadar çoğunlukla birbirinin yerine geçebilir.


3
Üzgünüz, kavşaklar ve yazılım bağlantıları NTFS için aynı şey değildir. :(
Vilx

2
msdn.microsoft.com/en-us/library/aa365006%28VS.85%29.aspx Alıntı: "Bir kavşak (yumuşak bağlantı da denir)"
Josip Medved

3
Ancak, kavşak (diğer adıyla soft-link) ve sembolik link arasında başka bir ayrım var, ancak burada ayrıntılara girmedim. İlgilenenler için, Windows belgelerinde msdn.microsoft.com/en-us/library/aa365006%28VS.85%29.aspx ve msdn.microsoft.com/en-us/library/aa363878%28VS adresinde bulunabilir. % 85 29.aspx .
Josip Med

1
Windows Vista'dan beri hem NTFS kavşakları (sadece dizinlere işaret edilebilir) hem de Unix tarzı sembolik bağlantılar vardır (kelimenin tam anlamıyla herhangi bir şeye işaret edebilir).
yerçekimi

0

Sabit bağlantı: yalnızca aynı cilt için çalışır.
Kavşak: herhangi bir yerel cilt
Sembolik: yerel cilt veya UNC yolu

| Link Type     | Same Volume | Different Volume | UNC Path |
|---------------|-------------|------------------|----------|
| Hard link     | Yes         | No               | No       |
| Junction      | Yes         | Yes              | No       |
| Symbolic link | Yes         | Yes              | Yes      |

Bonus Sohbetçisi

Windows, AppCompat amaçları için kavşaklar ve sembolik bağlantılar oluşturur; düşünen kötü yazılmış uygulamalar için:

  • C: \ Kullanıcılar \ Tüm Kullanıcılar
  • C: \ Users \ Varsayılan Kullanıcı

geçerli.

C:\Users>dir /as

 Directory of C:\Users

04/11/2018  07:45 PM    <SYMLINKD>     All Users [C:\ProgramData]
04/11/2018  07:45 PM    <JUNCTION>     Default User [C:\Users\Default]

Aynı durum, kullanıcının profil klasöründe, Windows XP çağındaki klasörlerin bugün hala varolmasını bekleyen uygulamalar için geçerlidir:

| Folder           | Type       | Target                                                           |
|------------------|------------|------------------------------------------------------------------|    | Application Data | <JUNCTION> | C:\Users\Ian\AppData\Roaming                                     |
| Cookies          | <JUNCTION> | C:\Users\Ian\AppData\Local\Microsoft\Windows\INetCookies         |
| Local Settings   | <JUNCTION> | C:\Users\Ian\AppData\Local                                       |
| My Documents     | <JUNCTION> | C:\Users\Ian\Documents                                           |
| NetHood          | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Network Shortcuts |
| PrintHood        | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Printer Shortcuts |
| Recent           | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Recent            |
| SendTo           | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\SendTo            |
| Start Menu       | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Start Menu        |
| Templates        | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Templates         |

1
ve ingilizce olmayan pencerelerdeki kurulumlarda daha da çılgınca olur, çünkü daha sonra EVEN DAHA FAZLA sembolik bağlar / kavşaklar alır, çünkü bazıları XP'ye kadar olan Windows aslında aslında diğer diller için hazırlanmış komut dosyalarını veya öğreticileri kolayca karıştırabilen yerel dizinlere sahiptir. Vista bunu öldürdü ve bunun yerine yerel DISPLAY adlarını kullanıyor, bu nedenle gerçek yollar tüm dillerde aynı, ancak o zamandan beri yerelleştirilmiş pencerelerin içinde İngilizce olanlardan daha fazla bağlantı var
My1

-1

Programlı cevaplamak için:

Sabit bağlantı: shared_ptr <>. Her zaman bir tane var.

Yumuşak bağlantı: zayıf_ptr <>. Sadece başka bir sabit link bulunduğunda geçerlidir.


Bu kolay olanı. :) Soru Hard Links vs Kavşaklar hakkındaydı. ;)
Vilx
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.