Windows'taki çeşitli bağlantı türleri nelerdir? Onları nasıl oluşturabilirim?


Yanıtlar:


57

Unfortunate farkının sadece sembolik linkler oluşturmak için Yönetici haklarına ihtiyacınız olduğunu unutmayın . IE, yükseltilmiş bir isteme ihtiyacınız var. (Geçici bir çözüm, SeCreateSymbolicLinkPrivilege , normal Kullanıcılara aracılığıyla verilebilir secpol.msc.)

Terminolojideki not: Windows kısayollarına "sembolik bağlantılar" denmez; bunlar yalnızca Windows Gezgini kabuğunun özel olarak davrandığı dosyalar oldukları için kabuk bağlantılarıdır .


Symlinks: Onları NTFS dosya sisteminde nasıl oluşturabilirim?

Windows Vista ve sonraki sürümleri , NTFS dosya sistemlerinde Unix tarzı sembolik bağları destekler . Aynı yol çözünürlüğünü de takip ettiklerini unutmayın - göreli bağlantılar, geçerli dizine değil, bağlantının konumuna göre oluşturulur. İnsanlar genellikle bunu unuturlar. Mutlak bir yol kullanarak da uygulanabilirler; EG c: \ system32 yerine \ windows \ system32 (bu, bağlantının konumuna bağlı bir system32 dizinine gider).
Sembolik bağlantılar, yeniden satış noktaları kullanılarak gerçekleştirilir ve genellikle Unix semboliklerle aynı davranışa sahiptir.

Yürütebileceğiniz dosyalar için:

mklink  bağlantı  adı hedef yolu

İçin dizinlere sen yürütebilirsiniz:

mklink / d linkname  hedef yolu

Hardlinks: Onları NTFS dosya sistemlerinde nasıl oluşturabilirim?

Windows NT'nin tüm sürümleri , NTFS dosya sistemlerinde Unix stili sabit bağlantıları destekler . Vista ve üstü sürümlerde mklink kullanımı:

mklink / h linkname  hedef yolu

Windows 2000 ve XP için kullanın fsutil.

fsutil hardlink linkname  oluşturmak targetpath

Bunlar aynı zamanda Unix sabit linkleriyle aynı şekilde çalışır - çoklu dosya tablosu girdileri aynı inode'u gösterir .


Dizin Bağlantıları: Onları NTFS dosya sistemlerinde nasıl oluşturabilirim?

Windows 2000 ve sonraki sürümleri NTFS dosya sistemlerinde dizin bağlantılarını destekler . Onlar ki içinde sembolik bağı farklıdır daima mutlak ve tek dizinlere, asla dosyalara gelin.

mklink / j linkname  hedef yolu

Yok sürümlerinde mklink, karşıdan junctionSysinternals'den:

kavşak  linkname  targetpath

Kavşaklar, yeniden puanlama noktaları kullanılarak gerçekleştirilir .


Windows'ta yeniden bir nokta kullanarak bir birimi nasıl bağlayabilirim?

Tamamlanması için, Windows 2000 ve sonraki sürümlerinde , yeniden satın alma noktaları ayrıca birimlere işaret edebilir ve bu da kalıcı Unix stili disk takmalarına neden olur :

mountvol  mountpoint \\? \ Volume { volumeguid }

Birim GUID'leri mountvol; Statiktir ancak sadece aynı makinededir.


Bunu Windows Gezgini'nde yapmanın bir yolu var mı?

Evet, yukarıda tarif edilen bağlantıları yapmayı çok kolaylaştıran kabuk uzantı Link Shell Extension kullanabilirsiniz . İndirilenleri sayfanın altında bulabilirsiniz .

NT4, Windows 2000, Windows XP, Windows XP64 ve Windows7'de uygulanan NTFS dosya sistemi, sabit linkler (burada Hardlinks olarak adlandırılır) olarak bilinen bir tesisi desteklemektedir . Hardlinks, bir dosyanın tek bir kopyasını tutma becerisini sağlar, ancak birden çok klasörde (dizinlerde) görünmesini sağlar. POSIX komut ile Onlar oluşturulabilir ln dahil içinde Windows Resource Kit, fsutil komut programı Windows XP veya benim komut satırı dahil ln.exe yardımcı programı.

Bu uzantı, kullanıcının bir veya daha fazla dosya veya klasör seçmesine izin verir, ardından fareyi kullanarak, gerekli Bağlantılar - Sabit Bağlantılar, Bağlantılar veya Sembolik Bağlantılar veya Zorunlu veya Sembolik Bağlantılardan oluşan Klonlar oluşturmak için klasörler durumunda oluşturma işlemini tamamlar. LSE, Windows XP64 ve Windows7 dahil olmak üzere NTFS sürüm 5.0 veya sonraki sürümlerini destekleyen tüm Windows sürümlerinde desteklenir. Sabit Bağlantılar, Bağlantılar ve Sembolik Bağlantılar FAT dosya sistemlerinde desteklenmez ve FAT dosya sistemlerinde Klonlama ve Akıllı Kopyalama işlemi desteklenmez.

Kaynak basit bir tıklama menüsü kullanılarak kolayca seçilebilir .

Ne seçtiğine bağlı olarak , bir hedef klasöre sağ tıklayıp seçenekleri içeren bir menü elde edersiniz.

Bu, bağlantılar oluşturmayı çok kolaylaştırır . Kapsamlı bir rehber için, LSE belgelerini okuyun .

İndirilenler sayfalarının altında bulunabilir .

İlgili MSDN URL’leri:


40

Bu cevapta , dizin yönetimindeki farklı bağlantı türlerinin ne olduğunu ve ne zaman kullanılabildiğinin yanı sıra neden yararlı olduklarını ana hatlarıyla belirtmeye çalışacağım . Dosya hacimlerinizde belirli bir organizasyon elde etmeye çalışırken, farklı türlerin yanı sıra bunları oluşturmanın da bilinmesi değerli bilgilerdir.

Belirli bir bağlantı yapılabilir hakkında bilgi için, bkz grawity 'ın cevabı .

Bağlantı nedir?

Bir bağlantı iki varlık arasındaki ilişkidir; Dizin yönetimi bağlamında, bir bağlantı aşağıdaki iki varlık arasındaki ilişki olarak görülebilir:

  1. Dizin Tablosu

    Bu tablo, belirli bir klasörde bulunan dosya ve klasörleri izler.

    Dizin tablosu, bir dizini temsil eden (klasör olarak da bilinir) özel bir dosya türüdür. İçinde depolanan her dosya veya dizin, tablodaki 32 baytlık bir girdiyle gösterilir. Her girdi, adı, uzantıyı, öznitelikleri (arşiv, dizin, gizli, salt okunur, sistem ve cilt), son değişiklik tarihini ve saatini, dosya / yönetmen verilerinin ilk kümesinin adresini ve son olarak büyüklüğünü kaydeder. dosya / dizin.

  2. Veri Kümesi

    Daha spesifik olarak, dosyanın veya dizinin ilk kümesi.

    Bir küme, bir dosyayı tutmak için ayrılabilecek en küçük disk alanı miktarıdır.

Bu ilişki ile ilgili özel olan şey, birinin yalnızca bir veri kümesine sahip olmasına izin vermesidir, ancak bu veri kümesine birçok bağlantısı vardır ; bu, verileri birden fazla konumda bulunduğunu göstermemize olanak tanır. Bununla birlikte, bunu yapmanın birçok yolu vardır ve bunu yapmak için her yöntemin kendi etkileri vardır.

Bu köklerin nereden geldiğini görmek için geçmişe dönelim ...

Bir kabuk bağlantısı nedir ve neden her zaman yeterli değil?

Tanıdık gelmese de, bunu hepimiz biliyoruz! Dosya kısayolları şüphesiz dosyaları bağlamak için en sık kullanılan yoldur. Bunlar, Windows 9x'in ilk sürümlerinde bulundu ve uzun süredir orada.

Bunlar, herhangi bir dosya veya klasöre hızlı bir şekilde kısayol oluşturmanıza olanak tanır ; örneğin , dosyanın yürütüldüğü çalışma dizini , programa sunulacak argümanlar gibi sadece bağlantı boyunca fazladan bilgi depolamak için özel olarak yapılır. programın en üst düzeye çıkarılıp çıkarılmayacağı gibi.

Bu bağlantı yaklaşımının dezavantajı, tam olarak, ek bilgi, bu bağlantı türünün, bu dosyayı içerecek bir veri kümesinin olmasını gerektirir. O zaman sorun mutlaka disk alanı gerektirmiyor, ancak asıl bağlantıya geçmeden önce ilk önce Veri Kümesi'nin talep edilmesi gerektiğinden bağlantıya dolaylı olarak erişilmesi gerekiyor. Asıl linkte belirtilen yol geçerse, kabuk linki hala mevcut olacaktır.

Eğer başvurulan dosya üzerinde çalışacak olsaydınız, öncelikle dosyanın hangi dizinde olduğunu bulmanız gerekir. Bağlantıyı bir düzenleyicide açıp .lnk, dosyayı bağladığınız dosya yerine düzenleyeceğiniz gibi açamazsınız . Bu, kabuk bağlantıları için birçok olası kullanım durumunu kilitler.

Bir kavşak noktası bağlantısı bu sorunları nasıl çözmeye çalışır?

Bir NTFS birleşim noktası , yerel sürücülerdeki bir dizine , normal bir dizin gibi davranacak şekilde sembolik bir bağlantı oluşturmasına izin verir . Böylece, diskinizde depolanan bir dosya dizini vardır, ancak birden çok konumdan erişebilirsiniz.

Birleşim noktasını kaldırırken, orijinal dizin kalır. Orijinal dizini kaldırırken, bağlantı noktası kalır. Silinmesi gereken bağlantı noktalarını kontrol etmek için diski numaralandırmak çok maliyetlidir. Bu, uygulamanın bir sonucu olarak olumsuz.

NTFS birleşim noktası, Windows 2000 ile birlikte sunulan NTFS dosya sistemi nesneleri olan NTFS yeniden inceleme noktaları kullanılarak uygulanır .

Bir NTFS yeniden inceleme noktası bir tür NTFS dosya sistemi nesnesidir. Reparse noktaları, dizin girişine ek bilgiler ekleyerek NTFS dosya sistemini genişletmenin bir yolunu sunar; böylece bir dosya sistemi filtresi, işletim sisteminin verileri nasıl işleyeceğini yorumlayabilir. Bu, bağlantı noktalarının, NTFS sembolik bağlantılarının ve birim bağlantı noktalarının oluşturulmasına izin verir ve Windows 2000'in Hiyerarşik Depolama Sisteminin önemli bir özelliğidir.

Doğru, işten çıkarma noktasının icadı daha karmaşık bağlantı biçimleri yapmamızı sağlıyor.

NTFS birleşim noktası yumuşak bir bağlantıdır ; bu yalnızca dosyanın adına bağlandığı anlamına gelir. Bu, bağlantı silindiğinde orijinal verilerin bozulmadan kaldığı anlamına gelir ; orijinal veri silinir zaman ancak, orijinal veri gitmiş olacak .

Bağlantı dosyalarını da yazılımdan alabilir miyim? Var mıdır sembolik linkler?

Evet, Windows Vista geldiğinde , NTFS birleşme noktasıyla aynı şekilde çalışan yumuşak bir bağlantı olan NTFS sembolik bağlantısını sağlayarak NTFS dosya sistemi nesnelerinin işlevselliğini genişletmeye karar verdiler . Ancak dosya ve dizinlere uygulanabilir.

Yine aynı silme davranışını paylaşırlar, bazı kullanım durumlarında bu, işe yaramaz bir dosyanın takılmamış bir kopyasını almak istemediğiniz için dosyalar için bir acı olabilir. Bu yüzden de sıkı linkler nosyonu uygulandı.

Sert bağlantı nedir ve yumuşak bağlantıların aksine nasıl davranır?

Sabit bağlantılar NTFS dosya sistemi nesneleri değildir, ancak bunun yerine bir dosyaya bağlanırlar (ayrıntılı olarak, gerçek dosya hakkında ek bilgi depolayan MFT girişine başvururlar). MFT girdisi, bir dosyanın bağlanması zor olan süreyi hatırlayan bir alana sahiptir. Verilere, işaret eden en az bir bağlantı mevcut olduğu sürece erişilebilir olacak.

Bu nedenle, veriler artık var olan tek bir MFT girişine bağlı değildir . Etrafında sert bir bağ olduğu sürece veriler hayatta kalacaktır. Bu, birinin orijinal dosyanın nerede olduğunu hatırlamak istemediği durumlarda yanlışlıkla silinmesini önler.

Örneğin, "hala izlemem gereken filmler" ile "tatilde çektiğim filmler" ve "favori filmler" gibi bir klasör oluşturabilirsiniz. Bunların hiçbiri olmayan filmler düzgün bir şekilde silinirken, bunlardan herhangi biri olan filmler, bir film izleseniz bile var olmaya devam edecektir.

Bir nedir hacim noktası bağlama bağlantıyı için?

Bazı BT veya iş adamları, sistemlerinde bulunan farklı sürücü harflerini hatırlamak veya yazmak zorunda kalmaktan hoşlanmayabilir. M:Zaten gerçekten ne anlama geliyor? Müzik miydi? Filmler? Modeller? Haritalar?

Microsoft, yıl boyunca kullanıcıları uzaklara taşımak için çaba sarf work in drive C:etti work in your user folder. Kuşkusuz, UAC ve izin sorunları olan kullanıcıların, bu yönergeleri izlemeyen kullanıcılar olduğunu söyleyebilirim, ancak bu merak etmelerini sağlamaz:

Kişisel dosyalarınız dışında neden günlük olarak bir şey görüntülemelisiniz?

Cilt bağlama noktaları, sürücü harfleriyle sınırlı olmanın yanı sıra, onlar için anlamlı bir dizin yapısına sahip olmanın profesyonel BT yoludur, ancak ...

Dosyalarım farklı yerlerde, bunları bir araya getirmek için bağlantılar kullanabilir miyim?

Windows 7'de Kütüphaneler tam da bu amaç için tanıtıldı. Bu klasörde ve bu klasörde ve o klasörde bulunan müzik dosyaları ile yapılır . Daha düşük bir bakış açısına göre bir kütüphane çoklu bağlantılar olarak görüntülenebilir. Yine birden fazla referans içerebilen bir dosya sistemi nesnesi olarak uygulanırlar. Özünde bire çok ilişki var ...

Beynim patlıyor ... Ne zaman kullanacağınızı özetler misiniz?

  • Kısayol bağlantıları: Bir çalıştırılabilir dosyaya veya web sitesine hızlı bir şekilde erişmeniz gerektiğinde, çok sık başlattığınız bir dosyada veya bir uygulamaya parametreler belirtmeniz gerektiğinde ve bir toplu iş dosyası overkill olduğunda bunları kullanın. Dosyayı kısayoluyla değiştirmek istediğinizde kullanmayın.

  • Bağlantı noktaları: Bir dizinin başka bir yerde olmasını istediğinizde bunları kullanın; bu, orijinal yola erişme özelliğini kaybetmeden dizinleri daha hızlı veya daha yavaş sürücülere taşımanıza olanak sağlar. Başka bir kullanım, bir dizine başka bir yoldan erişmek istediğinizde. Bunlar bir paylaşıma bağlanmak için kullanılamaz.

  • Yumuşak bağlantılar: Bir kısayol bağlantısının yeterli olmadığı yerlerde kullanın; dosyayı kısayoluyla değiştirmek istediğinizde kullanılır. Veya dosyanın, orijinal yola erişme özelliğini kaybetmeden daha hızlı veya daha yavaş bir sürücüde olmasını istediğinizde.

  • Sabit bağlantılar: Yalnızca bir dosyanın tüm sabit bağlantıları kaldırıldığında gitmesini istediğinizde bunları kullanın. Bu klasörler için kullanılamaz.

  • Birim bağlama noktaları: Sürücü harfleri tükendiğinde veya bir sürücü harfinden ziyade yoldan bir birime erişmeyi daha uygun bulduğunda bunları kullanın.

  • Kütüphaneler: Birçok farklı yerde aynı türde bir dosyaya sahipseniz ve bir arada olmaları gerektiğinde bunları kullanın, bu da çıkarılabilir sürücüleri destekler; o. Ağaç görünümündeki kitaplık altındaki klasör ağacından ayrı klasörlere tıklayabilirsiniz, bu da her ikisi arasında dosyaları taşımayı kolaylaştırır.


Kütüphaneler kısayol bağlantıları gibi kabuk seviyesindedir, değil mi?
Medinoc

@Medinoc: Hayır, birden fazla konumun içeriğini topluyorlar.
Tamara Wijsman

1
Ancak bunu, dosya sistemi düzeyinde, cmd.exe diyecek şekilde yapıyorlar dirve toplanmış içeriği listeleyebiliyorlar (bu durumda, dosya sisteminde nerededirler, bulamıyorum) ya da yalnızca toplarlar mı? Kabuk düzeyinde, yalnızca Windows Gezgini ve dosya iletişim kutuları bunları nerede gösterebilir? Ben ikincisi oldu izlenim oldu, ama yanlış sorum (Demek istediğim yazdığı sürece sizin "Hayır" Bu meydan "Kütüphaneler kısayol bağlantılar gibi kabuk düzey olan vardır , doğru?" ).
Medinoc

@Medinoc: Dosyalardalar C:\Users\{User}\AppData\Roaming\Microsoft\Windows\Libraries.
Tamara Wijsman

1
@Pacerier: Windows, örneğin bir müzik klasörünü özelliklerinden taşıyabileceğiniz eski konum sistemini kullanır. Kütüphaneler, işletim sisteminin kendisinin zorlukla kullandığı yeni bir eklentidir. Bu nedenle, bir şeyin kırılıp kırılmadığından şüpheliyim; sadece teşhir amaçlı tasarlandıkları gibi ...
Tamara Wijsman

8

Windows Vista veya daha yenisindeyseniz ve yönetici haklarına sahipseniz, mklink komutunu kontrol edebilirsiniz (bir komut satırı aracıdır). Windows, kısayollara koyduğu küçük ok simgesini verdiği için aslında ne kadar sembolik bağlantı olduğundan emin değilim, ancak bir metin dosyasındaki hızlı bir not defteri ++ testi, aradığınız şey için işe yarayabileceğini gösteriyor.

Hızlı kullanım kılavuzu için mklink'i argüman olmadan çalıştırabilirsiniz.

Umarım bu yardımcı olur.


mklink, Unix tarzı bağlantıyı daha fazla veya daha az kusursuz biçimde çoğaltmak için NTFS birleşme noktalarını (sanırım adı verilen şeyin bu olduğunu) kullanır. Windows bunun bir kavşak olduğunu söyleyebilir, bu yüzden geleneksel ok simgesini verir. Bazı kayıt defteri kemanlama ile bunu kaldırabilirsiniz, ancak nerede hatırlamıyorum.
jcrawfordor

2
@jcrawfordor: Disk yapıları "reparse noktaları" . Kavşaklar ve sembolik bağlantılar iki farklı yeniden kapama noktası tipidir; birim montaj noktaları üçüncü.
Grawity

1
Ve evet, @Gemini, yapımı mklinksembolik bağlantılar Unix olanlar gibi çalışmak için özel olarak uygulandı .
Grawity

Onay için teşekkür ederim. ); Ben çok onlarla etrafında oynadı hiç, bu yüzden sadece disclaim.h dahil etmek istedik
GeminiDomino

2

bu yazının bazı farklılıkları var

Önemli bir ayrım, bir anlamda, win7 öncesi kavşakların biraz güvensiz olduğu, bu yüzden onları silmenin hedef dizini sileceğidir.

http://cects.com/overview-to-understanding-hard-links-junction-points-and-symbolic-links-in-windows/

Bir Kavşak Noktası, Win2k, Win2003 ve WinXP'de Explorer ile, del veya del / s komutlarında veya hedef dizinleri ve tüm alt dizinlerini sileceğinden, dizinleri yinelemeli olarak alan herhangi bir yardımcı programla asla kaldırılmamalıdır. Bunun yerine, bağlantı noktasını hedefi etkilemeden kaldırmak için rmdir komutunu, linkd yardımcı programını veya fsutil'i (WinXP veya üstü kullanıyorsanız) veya üçüncü taraf bir aracı kullanın. Vista / Win7'de, Bağlantı Noktalarını Explorer'la veya rmdir ve del komutlarıyla silmek güvenlidir.

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.