انتقل إلى المحتوى الرئيسي

الفصل 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