الفرق بين الروابط اللينة والروابط الصلبة في غنو لينكس

نشره طريف في
في نظام غنو لينكس هناك أسلوبين مختلفين في إنشاء روابط للملفات، وبالتالي نوعين من الروابط، يسمى الأول soft link أو symbolic ويمكننا ترجمته إلى "رابط مرن" أو ليّن، ويسمّى الآخر hard link أي "رابط صلب". الرابط اللين يعمل بذات أسلوب الاختصارات في ويندوز windows shortcuts، أي هو عبارة عن وصلة صغيرة يقتصر محتواها على المسار الكامل للملف أو المجلد المُحدّد، وأشبّهه بـ "ظل الملف"، فإذا حُذف الأصل يصبح الفرع عديم القيمة (وكأنه لا وجود له). لإنشاء رابط ليّن نستخدم الأداة ln مع الخيار -s. الرابط الصلب يدمج بين أسلوبي الاختصار والنسخ معًا، فهو من جهة يملك وجودًا مستقلًا عن الملف الأصل، بمعنى أنه إذا حُذف الأصل فسيبقى الفرع على حاله، ولكن إذا طرأ تعديل على محتوى الأصل فسيتغيّر محتواه كذلك، وهذه ميزة غير موجودة في أنظمة ويندوز ولذلك قد تبدو غريبة للوهلة الأولى. وسأشبهه بإثنين من الأواني المرتبطين معًا بأسلوب الأواني المستطرقة (أتمنى أن لا تتعقد الأمور)، فإضافة كمية من السائل في أحد الإناءين ستؤثر بذات المقدار على الإناء الآخر، ولكن إذا رغبت بفصل الإناءين والتخلص من أحدهما فسيبقى الآخر على حاله. لإنشاء رابط صلب نستخدم الأمر ln بدون أي خيار. هناك شرطين لإنشاء رابط صلب، أولًا أن لا يكون لمجلد (حيث لا يمكن إنشاء روابط صلبة سوى للملفات)، وثانيًا أن يكون الملف ورابطه الصلب في ذات القسم partition. لنأخذ مثال عمليّ يوضّح الفكرة: echo "hello" > a ln a b ln -s a c يُنشئ السطر الأول ملفًا جديدًا باسم a، يحتوي على الكلمة "hello". يُنشئ السطر الثاني رابطًا صلبًا للملف a باسم b. ينشئ السطر الثالث رابطًا لينًا للملف a باسم c. وبالتأكيد سيكون الآن محتوى الملفات واحدًا: cat a ---> hello cat b ---> hello cat c ---> hello لنجرّب التعديل على الملف الأصل a cat "change" >> a عند استعراض محتويات الملفات الثلاثة سنجدها متشابهة أيضًا. الآن لنحذف الملف الأصل a rm a الفرق بين الرابط اللين والرابط الصلب سيكون واضحًا عند استدعاء الملفات الثلاثة: cat a ---> No such file or directory cat b ---> hello cat c ---> No such file or directory هكذا يبدو الملف b وكأنه نسخة من الملف a (لأنه لم يتأثر بحذفه)، إلا أنها "نسخة حيّة" حسّاسة بشكل فوري للتغيرات التي تحصل على محتويات الملف الأصل، ودون أن تتأثر بحذفه. يمكن الاستفادة من الروابط الصلبة بإنشاء نسخ احتياطية للملفات ذات الأهمية الكبيرة، بحيث تخضع لذات التعديلات، بينما تتمتع بوجود مستقل عن بعضها.