ما هو الفرق بين ارتباط رمزي و من الصعب الارتباط ؟

StackOverflow https://stackoverflow.com/questions/185899

  •  06-07-2019
  •  | 
  •  

سؤال

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

هل كانت مفيدة؟

المحلول

تحت نظام الملفات الملفات ممثلة inodes (أو متعددة inodes غير متأكد)

الملف في نظام الملفات هو في الأساس رابط inode.
ارتباط ثابت فقط ثم يقوم بإنشاء ملف آخر مع رابط الأساسية نفسها inode.

عند حذف ملف يزيل رابط واحد الكامنة inode.على inode فقط حذف (أو deletable/أكثر للكتابة) عند كل الروابط inode تم حذفها.

ارتباط رمزي هو ارتباط إلى اسم آخر في نظام الملفات.

مرة واحدة في الارتباط الثابت أحرز الرابط هو inode.حذف تسمية أو نقل الملف الأصلي لن تؤثر على الارتباط الثابت كما روابط الأساسية inode.أي تغييرات على البيانات على inode ينعكس في جميع الملفات التي تشير إلى أن inode.

ملاحظة:بجد روابط صالحة فقط داخل نفس نظام الملفات.وصلات رمزية يمكن أن تمتد أنظمة الملفات كما هي ببساطة اسم ملف آخر.

نصائح أخرى

وبعض الحدس لطيفة التي قد تساعد، وذلك باستخدام أي لينكس (العش) وحدة التحكم.

إنشاء ملفين:

$ touch foo; touch bar

وأدخل بعض البيانات الى لهم:

$ echo "Cat" > foo
$ echo "Dog" > bar

و(في الواقع، كان يمكن أن تستخدم صدى في المقام الأول، لأنها تخلق الملفات إذا لم تكن موجودة ... ولكن لا مانع أن.)

وكما هو متوقع:

$cat foo; cat bar
Cat
Dog

ودعونا خلق الروابط المادية وغير المادية:

$ ln foo foo-hard
$ ln -s bar bar-soft

ودعونا نرى ما حدث للتو:

$ ls -l

foo
foo-hard
bar
bar-soft -> bar

وتغيير اسم فو لا يهم:

$ mv foo foo-new
$ cat foo-hard
Cat

ونقاط فو الصعب على inode والمحتويات ومن الملف - الذي لم يتغير

$ mv bar bar-new
$ ls bar-soft
bar-soft
$ cat bar-soft  
cat: bar-soft: No such file or directory

تعذر العثور على محتويات الملف لأن نقطة الارتباط ناعمة لاسمها، أن تغير، وليس للمحتويات.

وبالمثل، إذا تم حذف foo، foo-hard لا يزال يحمل محتويات. إذا تم حذف bar، bar-soft هو مجرد وصلة لملف غير موجود.

وكما يقول المثل: الصورة تساوي ألف كلمة.هنا هو كيف يمكنني تصور ذلك:

enter image description here

هنا هو كيف نصل إلى هذه الصورة:

  1. إنشاء اسم myfile.txt في ملف نظام نقاط جديد inode (الذي يحتوي على البيانات الوصفية عن الملف ويشير إلى كتل من البيانات التي تحتوي على محتوياته ، أيالنص "مرحبا العالم!":

    $ echo 'Hello, World!' > myfile.txt
    
  2. إنشاء ارتباط ثابت my-hard-link إلى الملف myfile.txt, الذي يعني "إنشاء ملف يجب أن تشير إلى نفس inode أن myfile.txt نقاط":

    $ ln myfile.txt my-hard-link
    
  3. إنشاء لينة الرابط my-soft-link إلى الملف myfile.txt, الذي يعني "إنشاء ملف يجب أن يشير إلى الملف myfile.txt":

    $ ln -s myfile.txt my-soft-link
    

انظر ماذا سيحدث الآن لو myfile.txt حذف (أو نقل): my-hard-link لا يزال يشير إلى نفس المحتويات ، وبالتالي تتأثر ، بينما my-soft-link الآن يشير إلى لا شيء.إجابات أخرى مناقشة إيجابيات/سلبيات كل منهما.

بجد روابط مفيدة عند الملف الأصلي يتم نقلها في جميع أنحاء.على سبيل المثال ، نقل ملف من /بن /usr/bin أو إلى /usr/local/bin.أي الارتباط الرمزي إلى الملف في /بن ستكون مكسورة قبل هذا ، ولكن hardlink ، لكونها وصلة مباشرة إلى inode الملف لا الرعاية.

من الصعب الروابط قد تأخذ مساحة أقل على القرص لأنها تأخذ فقط دليل دخول, في حين أن الارتباط الرمزي الاحتياجات الخاصة inode لتخزين اسم يشير إلى.

من الصعب الروابط أيضا أن تأخذ أقل وقت حل - روابط الرمزية يمكن أن نشير إلى أخرى روابط الرمزية التي هي في symlinked الدلائل.و بعض من هذه يمكن أن تكون على NFS أو أخرى عالية الكمون أنظمة الملفات, و بذلك يمكن أن يؤدي إلى حركة مرور شبكة الاتصال إلى حل.من الصعب الروابط يجري دائما على نفس نظام الملفات ، هناك دائما حل في نظرة واحدة و لا تنطوي على استتار الشبكة (إذا كان hardlink NFS الملفات NFS server سيفعل القرار ، سيكون غير مرئي النظام العميل).في بعض الأحيان هذا هو المهم.ليس بالنسبة لي, ولكن يمكنني أن أتصور عالية الأداء حيث نظم هذا قد يكون مهما.

وأعتقد أيضا أشياء مثل mmap(2) حتى فتح(2) استخدام نفس الوظائف ك hardlinks للحفاظ على الملف inode النشطة بحيث حتى لو كان يحصل على ملف فك ارتباط(2)إد ، inode يبقى للسماح واستمرت عملية الوصول ، مرة واحدة فقط في عملية يغلق عليه لا ملف حقا الذهاب بعيدا.هذا يسمح أكثر أمانا الملفات المؤقتة (إذا كان يمكنك الحصول على فتح و فك ارتباط يحدث الذرة ، والتي قد يكون هناك POSIX API أنني لا تذكر ، ثم لديك حقا آمنة ملف مؤقت) حيث يمكنك قراءة/كتابة البيانات الخاصة بك دون أن يستطيع أحد الوصول إليه.حسنا, كان ذلك صحيحا قبل /proc أعطى الجميع القدرة على النظر في ملف واصف, ولكن تلك قصة أخرى.

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

وهناك طريقة بسيطة لمعرفة الفرق بين ارتباط ثابت وارتباط رمزي هو من خلال مثال بسيط. وهناك ارتباط ثابت إلى ملف يشير إلى المكان الذي يتم تخزين الملفات، أو inode هذا الملف. وهناك ارتباط رمزي يشير إلى ملف الفعلي نفسه.

وحتى لو كان لدينا ملف يسمى "أ" وإنشاء ارتباط ثابت "ب" وارتباط رمزي "ج" والتي تشير جميعا إلى ملف "أ":

echo "111" > a
ln a b
ln -s a c

وسوف إخراج "أ"، "ب"، و "ج" على النحو التالي:

cat a --> 111
cat b --> 111
cat c --> 111

والآن دعونا إزالة ملف "أ" وانظر ماذا يحدث للإخراج "أ"، "ب"، و "ج":

rm a
cat a --> No such file or directory
cat b --> 111
cat c --> No such file or directory

وماذا حدث؟

ولأن ملف "ج" نقاط لملف "أ" نفسه، إذا كان الملف "a" يتم حذف ثم ملف "ج" سيكون شيئا للإشارة إلى، في الواقع يتم حذفه أيضا.

ولكن، الملف "ب" يشير إلى مكان التخزين، أو inode، من ملف "أ". حتى إذا كان ملف "a" يتم حذفها بعد ذلك سوف لم تعد تشير إلى inode، ولكن بسبب ملف "ب" لا، سوف تستمر inode لتخزين كل ما ينتمي المحتويات إلى "أ" حتى نقطة لا علاقة المزيد من الصعب بعد الآن.

لينة الرابط:

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

لينة الرابط الجملة: ln -s Pathof_Target_file link

الإخراج : link -> ./Target_file

برهان: readlink link أيضا في ls -l link الناتج سوف ترى رسالة في lrwxrwxrwx كما l وهو ما يشير إلى أن الملف هو لينة الرابط.

حذف الرابط: unlink link

ملاحظة: إذا كنت ترغب في ذلك ، softlink يمكن أن تعمل حتى بعد نقله إلى مكان آخر من التيار dir.تأكد من إعطاء المسار المطلق وليس مسار نسبي حين خلق وصلة لينة.أي(بدءا من /الجذر/user/Target_file لا ./Target_file)

من الصعب الرابط:

من الصعب ربط أكثر من مرآة نسخ أو مسارات متعددة إلى نفس الملف.لا شيء file1 و يظهر في الملف 2.حذف واحد لا يزال يحتفظ الأخرى موافق.

على inode(أو الملف) فقط حذف عند كل (الثابت)روابط أو كل المسارات إلى (نفس الملف)inode قد تم حذفه.

مرة واحدة في الارتباط الثابت أحرز الرابط يحتوي على inode من الملف الأصلي.حذف تسمية أو نقل الملف الأصلي لن تؤثر على الارتباط الثابت كما روابط الأساسية inode.أي تغييرات على البيانات على inode ينعكس في جميع الملفات التي تشير إلى أن inode.

من الصعب ربط الجملة: ln Target_file link

الإخراج: ملف مع اسم الرابط سيتم إنشاؤها مع نفس inode عدد من Targetfile.

برهان: ls -i link Target_file (التحقق من inodes)

حذف الرابط: rm -f link (حذف الرابط فقط مثل الملفات العادية)

ملاحظة:وصلات رمزية يمكن أن تمتد أنظمة الملفات كما هي ببساطة اسم ملف آخر.بينما الثابت الروابط صالحة فقط داخل نفس نظام الملفات.

وصلات رمزية لديها بعض الميزات بجد روابط مفقودة:

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

    # find / -inum 517333

    /home/bobbin/sync.sh
    /root/synchro
    
  • بجد روابط لا يمكن الإشارة إلى الدلائل.

بجد الروابط اثنين من القيود:

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

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

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

وأود أن أشير لك إلى ويكيبيديا:

بضع نقاط:

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

بجد روابط مفيدة جدا عند إجراء نسخ احتياطي تزايدي.انظر rsnapshot, على سبيل المثال.الفكرة أن تقوم باستخدام نسخ من الصعب الروابط:

  • نسخ احتياطية عدد n n + 1
  • نسخ احتياطية n - 1 n
  • ...
  • نسخ احتياطية من 0 إلى النسخ الاحتياطي 1
  • تحديث النسخ الاحتياطي 0 مع أي الملفات التي تم تغييرها.

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

وأود أن أضيف على السؤال نيك: عندما تكون <م> من الصعب صلات مفيدة أو ضرورية؟ تطبيق الوحيد الذي يتبادر إلى ذهني، والذي من شأنه أن الروابط رمزية لا قيام بهذه المهمة، هو توفير نسخة من ملف النظام في بيئة المستجذرة.

وارتباط ثابت مقابل رابط لينة يمكن تفسيرها بسهولة عن طريق هذه الصورة.

أيضا:

  1. قراءة في الأداء من الصعب الروابط أفضل من وصلات رمزية (الصغرى الأداء)
  2. يمكن نسخ الروابط رمزية, النسخة التي تسيطر عليها ، ..الخ.في آخر الكلمات ، فهي فعلية الملف.على الطرف الآخر, ارتباط ثابت هو شيء في انخفاض طفيف في مستوى سوف تجد أنه بالمقارنة مع وصلات رمزية ، هناك أقل من الأدوات التي توفر وسائل العمل مع القرص الصلب الروابط صعبة الروابط وليس الملفات العادية

ما رأيك في ك "ملف" العاديين هو في الواقع شيئين منفصلين: البيانات من ملف، وإدخال دليل. عند إنشاء ارتباط ثابت لملف، كنت في الواقع إنشاء إدخال الدليل الثاني الذي يشير إلى نفس البيانات. كلا إدخالات الدليل لديها الوظيفة نفسها بالضبط. كل واحد يمكن استخدامه لفتح الملف لقراءته. لذلك لم يكن لديك حقا "ملف بالإضافة إلى ارتباط ثابت"، لديك "ملف البيانات مع إدخالات الدليل اثنين". ما رأيك في كما حذف ملف حذف الواقع إدخال دليل، وعندما يتم حذف إدخال دليل آخر للبيانات، ثم يتم حذف البيانات نفسها كذلك. بالنسبة للملفات العادية التي لديها إدخال دليل واحد فقط، حذف إدخال دليل سيتم حذف البيانات كما هو الحال دائما. (بينما يتم فتح الملف، OS بإنشاء ارتباط مؤقت للملف، وذلك حتى عندما قمت بحذف كافة إدخالات الدليل، يبقى البيانات ولكن يختفي بمجرد إغلاق الملف).

وكمثال على ذلك، إنشاء ملف A.txt، ارتباط ثابت B.txt، وحذف A.txt. عند إنشاء A.txt، تم إنشاء بعض البيانات، وإدخال دليل A.txt. عند إنشاء ارتباط ثابت، تم إنشاء إدخال دليل آخر B.txt، لافتا إلى نفس البيانات الدقيقة. عند حذف A.txt، لا يزال لديك كافة البيانات وإدخال دليل واحد B.txt، تماما كما لو كان لديك إنشاء ملف B.txt في المقام الأول.

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

من MSDN,

الارتباط الرمزي

ارتباط رمزي هو نظام الملفات الكائن الذي يشير إلى ملف آخر نظام كائن.الكائن الذي أشار إلى ما يسمى الهدف.

وصلات رمزية شفافة للمستخدمين ؛ الروابط تظهر بشكل طبيعي الملفات أو الدلائل ، يمكن اتخاذ إجراءات بشأنها من قبل المستخدم أو الطلب في بالضبط بنفس الطريقة.

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

وصلات رمزية يمكن أن تكون إما مطلق أو نسبي الروابط.المطلق الروابط هي روابط تحديد كل جزء من مسار الاسم ؛ النسبية الروابط يتم تحديد نسبة إلى حيث النسبية–رابط محددات في المسار المحدد

مثال المطلق الارتباط الرمزي

X: "C:\alpha\beta\absLink\gamma\file"
Link: "absLink" maps to "\\machineB\share"
Modified Path: "\\machineB\share\gamma\file"

مثال النسبية وصلات رمزية

X: C:\alpha\beta\link\gamma\file
Link: "link" maps to "..\..\theta"
Modified Path: "C:\alpha\beta\..\..\theta\gamma\file"
Final Path: "C:\theta\gamma\file"

الرابط الثابت

A الرابط الثابت هو نظام الملفات تمثيل الملف الذي أكثر من مسار واحد مراجع ملف واحد في نفس الحجم.

إنشاء ارتباط ثابت في ويندوز ، انتقل إلى أين الرابط هو إنشاء ثم أدخل هذا الأمر:

mklink /H Link_name target_path

لاحظ أنه يمكنك حذف ارتباطات ثابتة أي أمر ، بغض النظر عن الترتيب الذي تم إنشاؤها.أيضا ، من الصعب الروابط لا يمكن أن تنشأ عندما

  • مراجع في مختلف محركات الأقراص المحلية
  • المراجع تشمل محرك أقراص الشبكة.وبعبارة أخرى, أحد المراجع هو محرك أقراص الشبكة
  • من الصعب أن يكون خلق في نفس المسار الهدف

تقاطع

NTFS يدعم رابط آخر نوع يسمى مفرق.MSDN تحدد على النحو التالي:

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

بالخط العريض أجزاء في الارتباط الثابت القسم تقاطع القسم تظهر الفرق الأساسي بين البلدين.

الأمر إلى إنشاء تقاطع في ويندوز ، انتقل إلى أين الرابط المراد إنشاؤه ثم enter:

mklink /J link_name target_path

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

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

وإدخال الدليل هو ربط structrue:

struct dentry{
    ino_t ino;
    char  name[256];
}

وعلى إينو هو عدد inode، اسم هو اسم الملف، هيكل inode ربما مثل:

struct inode{
      link_t nlink; 
      ...
}

وعلى سبيل المثال أن يخلق ملف / 1، وإدخال دليل ربما مثل:

struct dentry{
     ino_t ino; /* such as 15 */
     char  name[256]; /* "1" */
} 

والبنية inode ربما مثل:

   struct inode{ /* inode number 15 */
         link_t nlink; /* nlink = 1 */
         ...
    }

وبعد ذلك قمت بإنشاء ارتباط ثابت (قد يكون / 100)، وإدخال دليل ربما مثل:

  struct dentry{
     ino_t ino; /* 15 */
     char  name[256]; /* 100 */
  }

والبنية inode ربما مثل:

   struct inode{ /* inode numebr 15 */
         link_t nlink; /* nlink = 2 */
         ...
    }

وبعد ذلك قمت بإنشاء ارتباط رمزي (قد يكون / 200) إلى ملف 1، وإدخال دليل ربما مثل:

  struct dentry{
        ino_t ino; /* such as 16 */
        char  name[256]; /* "200" */
  }

والبنية inode ربما مثل:

   struct inode{ /* inode number 15 */ 
         link_t nlink; /* nlink = 2 */
         ...
    }

   struct inode{ /* inode number 16 */
         link_t nlink; /* nlink = 1 */
         ...
    } /* the data of inode 16 maybe /1 or 1 */

وإضافة إلى كل الأجوبة المذكورة أعلاه، يمكن أن يفهم الفرق في العثور على ملف hardlink وsoftlink على النحو التالي:

ولدي f6 الملف في دليل بلدي الحالي، فضلا عن t2 دليل مسمى.

وملف اسمه f1 و./t2/f2 وصلات رمزية لf6.

وملف اسمه f7 و./t2/f8 وصلات مطبوعة من f6.

لتجد لينة وكذلك ارتباط ثابت يمكننا استخدام:

$ find -L . -samefile f6 

> ./f1
> ./f6
> ./f7
> ./t2/f2
> ./t2/f8

لتجد فقط hardlink يمكننا استخدام:

$ find . -xdev -samefile f6

> ./f6
> ./f7
> ./t2/f8

ومنذ hardlinks يمكن إنشاؤها على نظام الملفات نفسه، يمكننا بحث في كل hardlinks دون خيار -L المستخدمة (مع خيار -xdev) في / جبل نقطة نفس نظام الملفات. فإنه يحفظ البحث لا داعي لها في مختلف نقاط تحميل.

وهكذا البحث في hardlink وأسرع بعض الشيء ثم البحث في softlinks (يرجى تصحيح إذا كنت مخطئا أو غير واضح).

وصلات رمزية تعطي اسم آخر للملف، بطريقة مماثلة لارتباطات ثابتة. لكن ملف يمكن حذف حتى لو كانت هناك المتبقية صلات رمزية.

أنا فقط وجدت وسيلة سهلة لفهم من الصعب الروابط في سيناريو مشترك, برنامج تثبيت.

يوم واحد أنا تحميل البرنامج إلى مجلد Downloads من أجل تثبيت.بعد أن فعلت sudo make install, بعض الملفات التنفيذية كانت cpإد المحليين بن مجلد.هنا ، cp يخلق الرابط الثابت.كنت سعيدا مع البرنامج ولكن سرعان ما أدركت أن Downloads المكان ليس جيدا على المدى الطويل.لذا mvإد البرنامج مجلد source الدليل.حسنا, لا يزال يمكنني تشغيل البرنامج كما كان من قبل دون الحاجة إلى القلق حول أي هدف ربط الأشياء مثل ويندوز.وهذا يعني الرابط الثابت يجد inode مباشرة و الملفات الأخرى حولها.

في هذه الإجابة عندما أقول ملف أعني الموقع في الذاكرة

وجميع البيانات التي يتم حفظها وتخزينها في الذاكرة باستخدام بنية بيانات تسمى inodes وقد يستخدم كل inode عدد inode inodenumber.The للوصول إلى inode.All الروابط الصعب ملف قد يكون أسماء مختلفة ولكنها تشترك في نفس inode number.Since جميع الروابط الصلبة لديها نفس inodenumber (الوصول التي inturn نفس inode)، وجميعهم من الإشارة إلى نفس الذاكرة الفعلية.

وهناك ارتباط رمزي هو نوع خاص من file.Since بل هو أيضا ملف سيكون له اسم الملف وinode قالت number.As فوق رقم inode acceses على inode الذي يشير إلى data.Now ما يجعل ارتباط رمزي خاص هو أن inodenumbers في وصلات رمزية الوصول إلى تلك inodes التي تشير إلى "مسار" لfile.More آخر على وجه التحديد عدد inode في ارتباط رمزي acceses تلك inodes الذين يشيرون إلى ارتباط ثابت آخر.

وعندما كنا نسير، نسخ، حذف ملف في واجهة المستخدم الرسومية نحن نلعب مع hardlinks الملف ليس memory.when المادية نحذف ملف نقوم بحذف hardlink من الملف. نحن لا ماحيا memory.If المادية كافة hardlinks يتم حذف ثم تودعه لن يكون من الممكن الوصول إلى البيانات المخزنة على الرغم من أنه قد يكون لا يزال حاضرا في الذاكرة

بلدي اثنين سنتا على الاستخدام:

لينة روابط قد تكون تستخدم لتقصير الطريق الطويل الأسماء ، أي:

ln -s /long/folder/name/on/long/path/file.txt /short/file.txt

التغييرات التي أدخلت على /short/file.txt سيتم تطبيقها على الملف الأصلي.

بجد روابط يمكن استخدامها للتحرك الملفات الكبيرة:

$ ls -lh /myapp/dev/
total 10G
-rw-r--r-- 2 root root 10G May 22 12:09 application.bin

ln /myapp/dev/application.bin /myapp/prd/application.bin

لحظة نسخ إلى مجلد مختلف ، و الملف الأصلي (على /myapp/dev) يمكن نقلها أو حذفها دون لمس الملف على /myapp/prd

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top