سؤال ما هو الفرق بين الارتباطات الثابتة لـ NTFS وتقاطعات الدليل؟


العنوان يقول كل شيء ... ما الفرق؟ متى أستخدم واحدة ومتى أستخدم الأخرى؟

وأضاف: لاحظ أن نقاط التقاطع، روابط صلبة و روابط رمزية (ميسرة) هي ثلاثة أشياء منفصلة على NTFS.


69
2017-11-09 10:53


الأصل


وفقًا لوثائق Microsoft ، توجد ثلاث فئات مميزة: الرابط الثابت: msdn.microsoft.com/en-us/library/aa365006٪28VS.85٪29.aspx. تقاطع (رابط ضعيف): msdn.microsoft.com/en-us/library/aa365006٪28VS.85٪29.aspx. ارتباط رمزي: msdn.microsoft.com/en-us/library/aa363878٪28VS.85٪29.aspx. - Josip Medved


الأجوبة:


يتم تخزين ملفات البيانات NTFS مع كافة سماتها كـ "inode" مع معرف ، وأسماء الملفات تشير إلى inode. جميع الملفات لديها واحد + hardlink. يمكن لبعض الأدوات إنشاء أسماء إضافية (روابط ثابتة) والتي تشير إلى نفس الرمز ، الذي يحتوي على عداد لعدد الأسماء التي تشير إليه. إذا كان الرقم يذهب إلى الصفر ، فإن نظام التشغيل يقوم بحذف الملف ، وهو inode.

يمكن لأدوات خاصة ، مثل LN إنشاء أسماء ملفات إضافية تشير إلى وجود inode موجودة ، باستخدام اسم ملف يشير إليها. لاحظ أنه يتم تخزين كافة سمات الملف ، بما في ذلك التواريخ والأوقات مع inode ، وليس اسم الملف.

تفيد الارتباطات الإضافية (الإضافية) عندما تريد أن تشير أسماء مختلفة إلى نفس البيانات أو القراءة أو الكتابة. توفر مساحة ونفقات. ومع ذلك ، فإن برامج clobber التي تفترض أسماء مختلفة تشير إلى بيانات مختلفة. على سبيل المثال ، إذا استبدلت المراجع إلى الملفات المكررة عن طريق الروابط الثابتة إلى ملف واحد ، فقد أزلت أي نسخة احتياطية لديك! نظام التشغيل ويندوز هو أحد البرامج التي تفترض أسماء مختلفة تشير إلى مجموعات مختلفة من البتات.

يجب أن تكون الروابط الثابتة على نفس الحجم المادي والمنطقي.

فهي مفيدة من أجل:

  • تقليل طول المسار لأن Windows يدعم 256 حرفًا أو ما شابه ذلك.

  • تقليل مساحة التخزين لملفات البيانات المكررة - على سبيل المثال ، يمكن أن يكون لديك نسخ احتياطية متعددة من قسم يحتوي على أشجار دليل كاملة متعددة ، ولكن مع ارتباطات تشعبية لملفات لم تتغير منذ النسخ الاحتياطي السابق.

نقاط الالتقاط هي أكثر ميلاً إلى استخدام نقاط Reparse (التي لا أفهمها). يمكن أن يشيروا إلى أحجام مختلفة أو منطقية ولكن يجب أن يكونوا على نفس الكمبيوتر. يبدو أنها يمكن استخدامها مثل symlinks للأدلة ، مما يسمح بالاسم الثاني لنفس الوجهة ، ولكن يقتصر على جهاز كمبيوتر واحد ، بدلا من مجرد وحدة تخزين واحدة.

مفيد لتقليل أطوال المسير ، أو تبسيط العمل مع العديد من البرامج بأسماء دليل ضمنية.

نفس المحاذير ، أيضا! تفترض العديد من البرامج أسماء مختلفة = ملفات مختلفة.

ثم هناك روابط رمزية (التي يمكن أن تمر عبر الشبكات) ، والاختصارات وملفات PIF و .....

أيضا بعض المعلومات من مايكروسوفت نفسها:

وبشكل أساسي ، فإنهم يقولون باستخدام الروابط الثابتة فقط للملفات الموجودة داخل نفس وحدة التخزين (حرف محرك الأقراص) ونقاط الوصلات فقط للأدلة على نفس الكمبيوتر (يمكن أن تمتد عبر وحدات تخزين محلية مختلفة).


30
2017-11-13 15:38



هل يعمل الارتباط الرمزي على مستوى القرص الثابت (NTFS) أم على مفهوم نظام التشغيل Windows؟ - IsmailS


تعريفات سريعة:

ارتباط رمزي: ارتباط إلى ملف أو دليل على نفس الحجم أو وحدة تخزين مختلفة (حرف محرك الأقراص) أو حتى إلى ملف أو دليل بعيد (باستخدام UNC في المسار الخاص به).

رابط ثابت: ارتباط إلى ملف على نفس وحدة التخزين (حرف محرك الأقراص) فقط. يحتوي كل ملف (بيانات الملف) على 1 رابط ثابت واحد على الأقل (اسم الملف). يؤدي حذف جميع الروابط الثابتة إلى حذف الملف بفعالية.

تقاطع طرق: ارتباط إلى دليل على نفس الحجم أو وحدة تخزين مختلفة (حرف محرك الأقراص) ولكن ليس إلى دليل بعيد.


تفاصيل:

بافتراض أنك تعمل مع وحدات تخزين NTFS في نظام التشغيل Windows Vista / 7 ، يمكنك الاستفادة من أداة سطر الأوامر  MKLINK  لإنشاء جميع الأنواع الثلاثة من الروابط:

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.

روابط رمزية: الارتباط الرمزي هو كائن نظام ملفات يشير إلى كائن نظام ملفات آخر (على سبيل المثال: file / directory).

  • MKLINK يمكن استخدامها لإنشاء روابط رمزية. باستخدام /D المعلمة يخلق رابط رمزي الدليل. لا يتحقق MKLINK مما إذا كان الهدف هو ملف أو دليل أو حتى إذا كان الهدف موجودًا! هذا يعني أنه يمكنك إنشاء روابط غير صالحة على الأرجح مثل ارتباط رمزي للدليل إلى ملف أو ارتباط رمزي إلى ملف / دليل غير موجود.

  • يمكن أن تكون الروابط الرمزية إما روابط مطلقة أو نسبية. الارتباطات المطلقة هي الارتباطات التي تحدد كل جزء من اسم المسار بينما يتم تحديد الارتباطات النسبية بالنسبة إلى موضع محددات الارتباط النسبي في مسار محدد.

  • يمكن أن تشير الارتباطات الرمزية المطلقة إلى ملفات / أدلة على نفس الحجم أو إلى مجلد آخر ، وكذلك إلى ملف أو دليل بعيد باستخدام مسار UNC. ومع ذلك ، يتم تقييد الارتباطات الرمزية النسبية إلى وحدة تخزين واحدة.

  • مطلوب امتيازات مرتفعة لإنشاء رابط رمزي على الرغم من أن الامتيازات العالية التي تم إنشاؤها لم تعد مطلوبة لحذف الرابط.

روابط صلبة: الارتباط الثابت هو تمثيل نظام الملفات لملف حيث يشير أكثر من مسار واحد إلى ملف واحد.

  • MKLINK يسمح بإنشاء روابط صلبة (باستخدام /H المعلمة) فقط من الملفات (وليس الدلائل). يمكن إنشاء ارتباط ثابت فقط من ملف في نفس وحدة التخزين.

  • يتم حذف الملف الذي يحتوي على ارتباطات ثابتة متعددة فقط فعليًا عند حذف جميع الروابط الثابتة ، بمعنى أن عدد الارتباطات يصل إلى الصفر. لذلك فإن كل ملف تقوم بإنشائه لديه رابط متصل واحد على الأقل له سواء كنت تستخدمه MKLINK أم لا.

  • تظهر أي تغييرات في هذا الملف على الفور للتطبيقات التي تصل إليها من خلال الروابط الثابتة التي تشير إليها. ومع ذلك ، يتم تحديث حجم إدخال الدليل ومعلومات السمة فقط للارتباط الذي تم إجراء التغيير من خلاله.

  • لاحظ أن السمات الموجودة على الملف تنعكس في كل رابط ثابت إلى ذلك الملف ، وتنتشر التغييرات التي تطرأ على سمات هذا الملف إلى جميع الروابط الثابتة. على سبيل المثال ، إذا قمت بإلغاء تعيين السمة للقراءة فقط على ارتباط ثابت لحذف هذا الارتباط الثابت المحدد ، وهناك ارتباطات ثابتة متعددة بالملف الفعلي ، فستحتاج إلى إعادة تعيين السمة للقراءة فقط على الملف من أحد الارتباطات الثابتة المتبقية لإحضار الملف وكافة الارتباطات الثابتة المتبقية إلى حالة القراءة فقط.

تقاطعات: يختلف الوصلة (وتسمى أيضًا ارتباطًا لينًا) عن ارتباط ثابت في أن كائنات التخزين التي تشير إليها هي أدلة منفصلة ، ويمكن أن يربط الوصلة الأدلة الموجودة على وحدات تخزين محلية مختلفة على نفس جهاز الكمبيوتر. خلاف ذلك ، تعمل التقاطعات بشكل متماثل مع الارتباطات الثابتة. يتم تنفيذ تقاطعات من خلال نقاط إعادة التوزيع.

  • MKLINKيسمح بإنشاء تقاطع (باستخدام /J المعلمة) من دليل (وحتى من الملفات على الرغم من هذا ربما ينبغي اعتباره رابط غير صالح).

  • يمكن اعتبار الوصلة كحلقة ارتباط مكافئة لارتباط رمزي بدليل. لا يمكن إنشاء ارتباط رابط إلى دليل بعيد ولكن يمكن إنشاؤه إلى دليل على نفس / وحدة تخزين مختلفة.


المراجع:

[1] من الصعب الربط والتقاطعات: https://msdn.microsoft.com/en-us/library/windows/desktop/aa365006٪28v=vs.85٪29.aspx

[2] إنشاء روابط رمزية: https://msdn.microsoft.com/en-us/library/windows/desktop/aa363878٪28v=vs.85٪29.aspx

[3] "رابط الدليل" مقابل "ارتباط رمزي الدليل"؟


38
2018-04-15 21:13





الارتباط الثابت هو مجرد اسم آخر لملف. إذا كان لديك ملف باسم A.txt وكان لديك L.txt الارتباط ، بمجرد حذف A.txt ، ستظل لديك حق الوصول إلى البيانات من خلال L.txt. فقط عندما يتم حذف الملفين.

من ناحية أخرى ، لديك ما يسمى ارتباط ضعيف (تقاطع إذا كان مجلد أو ارتباط رمزي إذا كان ملف). في هذه الحالة ، عند حذف A.txt ، ذهب الملف حقا. لا يؤثر حذف L.txt على ملف ما-أي وقت مضى.

لا يمكن استخدام الارتباطات الثابتة إلا على القسم نفسه كملف أصلي ويمكن استخدام الارتباطات البسيطة عبر الأقسام.

ملاحظة الملف والمجلد قابلة للتبديل في الغالب بقدر ما يذهب NTFS.


9
2017-11-09 10:58



عذرًا ، لا تكون الوصلات والروابط الليّنة هي الشيء نفسه بالنسبة إلى NTFS. :( - Vilx-
msdn.microsoft.com/en-us/library/aa365006٪28VS.85٪29.aspx اقتباس: "تقاطع (يسمى أيضًا رابطًا ناعمًا)" - Josip Medved
ومع ذلك ، هناك مزيد من التمييز بين الوصلة (الملقب بالربط الناعم) والروابط الرمزية ، لكني لم أدخل في التفاصيل هنا. للراغبين ، يمكن العثور على التفاصيل في وثائق Windows على msdn.microsoft.com/en-us/library/aa365006٪28VS.85٪29.aspx و msdn.microsoft.com/en-us/library/aa363878٪28VS.85٪29.aspx. - Josip Medved
منذ Windows Vista ، هناك تقاطعات NTFS (يمكن فقط الإشارة إلى الدلائل) و symlinks على نمط Unix (يمكن أن يشير إلى أي شيء حرفياً). - grawity


رابط ثابت: تعمل فقط على نفس الحجم.
تقاطع طرق: أي حجم محلي
رمزي: حجم المحلية أو مسار UNC

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

مكافأة الدردشة

يقوم Windows بإنشاء الوصلات والروابط الرمزية لأغراض AppCompat؛ لتلك التطبيقات المكتوبة بشكل سيئ والتي تعتقد:

  • C: \ Users \ All Users
  • C: \ Users \ Default المستخدم

صالحة.

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]

نفس الشيء صحيح في مجلد ملف تعريف المستخدم ، للتطبيقات التي تتوقع أن تظل مجلدات Windows XP موجودة اليوم:

| 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         |

0
2017-07-14 14:11





للإجابة برمجيا:

رابط ثابت: shared_ptr <>. دائما موجود واحد.

الرابط الناعم: weak_ptr <>. صالحة فقط عند وجود رابط ثابت آخر.


-1
2017-12-25 19:54



هذا هو واحد سهل. :) كان السؤال حول Hard Links مقابل Junctions. ؛) - Vilx-