الفصل 3.7 - الروابط الرمزية والصلبة
أهداف التعلم
في نهاية هذا الفصل، ستكون قادرًا على:
- فهم الفرق بين الروابط الرمزية والصلبة
- إنشاء وإدارة الروابط الرمزية
- إنشاء وإدارة الروابط الصلبة
- اختيار النوع المناسب من الروابط حسب الحالة
ما هو الرابط؟
الرابط هو مرجع لملف. يدعم لينكس نوعين من الروابط: الرمزية (الناعمة) والصلبة.
الروابط الرمزية (الروابط الناعمة)
الخصائص
الرابط الرمزي هو مؤشر إلى ملف أو دليل آخر.
# إنشاء رابط رمزي
ln -s /chemin/vers/cible lien_symbolique
ln -s cible.txt lien.txt
# رؤية إلى أين يشير الرابط
ls -l lien.txt
readlink lien.txt
الخصائص:
- يشير إلى اسم الملف (ليس inode)
- يمكن أن يشير إلى ملفات غير موجودة
- يمكن أن يشير إلى أدلة
- يمكن أن يعبر أنظمة الملفات
- يُعرف بـ
lفيls -l
مثال
# إنشاء ملف
echo "Contenu" > original.txt
# إنشاء رابط رمزي
ln -s original.txt lien.txt
# التحقق
ls -li
# 12345 -rw-r--r-- 1 user group 8 Jan 1 12:00 original.txt
# 12346 lrwxrwxrwx 1 user group 12 Jan 1 12:01 lien.txt -> original.txt
# القراءة عبر الرابط
cat lien.txt # يعرض "Contenu"
# حذف الأصل
rm original.txt
# الرابط لا يزال موجودًا لكنه مكسور
cat lien.txt # خطأ: No such file or directory
ls -l lien.txt # lien.txt -> original.txt (أحمر، مكسور)
المزايا
- يمكن أن يشير إلى أدلة
- يمكن أن يعبر أنظمة الملفات
- سهل التعرف عليه (سهم في ls -l)
- يمكن أن يشير إلى ملفات غير موجودة (لإنشاء مستقبلي)
العيوب
- الروابط مكسورة إذا تم حذف الهدف
- أبطأ قليلاً (إعادة التوجيه)
- يمكن أن يخلق حلقات
الروابط الصلبة
الخصائص
الرابط الصلب هو مرجع مباشر لنفس inode كملف آخر.
# إنشاء رابط صلب
ln cible.txt lien.txt
# التحقق (نفس inode)
ls -li
# 12345 -rw-r--r-- 2 user group 8 Jan 1 12:00 cible.txt
# 12345 -rw-r--r-- 2 user group 8 Jan 1 12:00 lien.txt
# نفس inode (12345)، نفس المحتوى
الخصائص:
- يشير إلى نفس inode
- نفس الملف (أسماء متعددة)
- لا يمكن أن يشير إلى أدلة
- لا يمكن أن يعبر أنظمة الملفات
- عدد الروابط في
ls -l(2 في المثال)
مثال
# إنشاء ملف
echo "Contenu" > original.txt
# إنشاء رابط صلب
ln original.txt lien.txt
# التحقق
ls -li
# نفس inode، نفس الحجم، نفس المحتوى
# التعديل عبر رابط
echo "Nouveau contenu" > lien.txt
# التحقق من الأصل
cat original.txt # يعرض "Nouveau contenu"
# حذف الأصل
rm original.txt
# الرابط لا يزال يعمل!
cat lien.txt # يعرض "Nouveau contenu"
عدد الروابط
# رؤية عدد الروابط
ls -l fichier.txt
# -rw-r--r-- 3 user group 1024 Jan 1 12:00 fichier.txt
# "3" تشير إلى 3 روابط صلبة لهذا الملف
# الملف لا يُحذف فعليًا إلا عندما
# يصل عدد الروابط إلى 0
المزايا
- لا يوجد رابط مكسور (حتى إذا تم حذف اسم)
- الأداء مطابق للأصل
- لا يوجد إعادة توجيه
العيوب
- لا يمكن أن يشير إلى أدلة
- لا يمكن أن يعبر أنظمة الملفات
- أقل مرونة
المقارنة
| الخاصية | الرابط الرمزي | الرابط الصلب |
|---|---|---|
| Inode | مختلف | نفس |
| أدلة | نعم | لا |
| أنظمة الملفات | نعم | لا |
| ملف غير موجود | نعم | لا |
| حذف الهدف | رابط مكسور | يعمل |
| الأداء | أبطأ قليلاً | مطابق |
| التعرف | l في ls -l | نفس inode |
حالات الاستخدام
الروابط الرمزية
متى تستخدم:
- الإشارة إلى أدلة
- إنشاء اختصارات
- الإشارة إلى ملفات على أنظمة ملفات أخرى
- تكوين مرن
أمثلة:
# اختصار إلى دليل
ln -s /var/www/html ~/www
# الإصدار الحالي
ln -s app-v2.0 app-current
# التكوين
ln -s /etc/nginx/sites-available/monsite /etc/nginx/sites-enabled/
الروابط الصلبة
متى تستخدم:
- النسخ الاحتياطي الآمن (أسماء متعددة)
- توفير المساحة (نفس الملف)
- الأداء الحرج
أمثلة:
# أسماء متعددة لنفس الملف
ln fichier.txt backup.txt
ln fichier.txt archive.txt
# جميعها تشير إلى نفس inode
الأوامر المفيدة
# رؤية جميع الروابط إلى inode
find /home -inum 12345
# العثور على الروابط الرمزية المكسورة
find /home -type l ! -exec test -e {} \; -print
# عد الروابط الصلبة
stat fichier.txt | grep Links
# رؤية إلى أين يشير الرابط الرمزي
readlink -f lien.txt # المسار المطلق المحلول
الملخص
في هذا الفصل، تعلمت:
الروابط الرمزية: مؤشرات إلى أسماء الملفات (ln -s)
الروابط الصلبة: مراجع لنفس inode (ln)
الاختلافات: الرمزية أكثر مرونة، الصلبة أكثر متانة
حالات الاستخدام: الرمزية للأدلة/المرونة، الصلبة للمتانة
الإدارة: ls -li للرؤية، readlink للرمزية
الخطوات التالية
الفصل 3.8: أنواع أنظمة الملفات
المختبر 3.3: البحث والروابط
تم إنشاء الفصل في: ديسمبر 2024