محتويات الدورة

لينكس / الأساسي: أسس سطر الأوامر / الدرس 2

التنقل وإدارة الملفات بوعي

افهم البحث في المسارات وبنية المجلدات والنسخ والنقل والروابط باستخدام مشروع افتراضي صغير.

وقت القراءة التقريبي: 4 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • تفسير المسارات المطلقة والنسبية.
  • اختيار عمليات الملفات المناسبة وفحص نتائجها.
  • التمييز بين أسماء الملفات والعقد والروابط الرمزية.

المسار تعليمة للبحث

يعرض نظام الملفات شجرة تبدأ من /. يبدأ المسار المطلق هناك، بينما يبدأ النسبي من مجلد عمل العملية. يشير . إلى المجلد الحالي و.. إلى الأب. مجلدك المنزلي موقع شخصي داخل الشجرة وليس جذراً آخر. يوسّع Bash الرمز ~ غير المقتبس في بداية الكلمة إلى مسار المنزل. قبل أي عملية حدد مجلد البداية وتتبع جميع المكونات. فقد يحدد اسم صحيح كائناً خاطئاً إذا اختلف مجلد العمل.

قراءة توزيع المجلدات

تضع الأنظمة عادة الإعدادات في /etc وبيانات التطبيقات المتغيرة في /var وحالة التشغيل في /run. ويعرض /proc و/sys واجهات للنواة بدلاً من مستندات مخزنة عادية. تختلف التوزيعات، وتدمج أنظمة كثيرة المواقع التاريخية /bin و/sbin في /usr باستخدام روابط. لا تعِد تنظيم هذه الأشجار لتبدو مألوفة. أنشئ للتعلم مشروعاً مؤقتاً مستقلاً يحوي ملاحظات مصطنعة فقط. يعرض pwd الموقع الحالي، ويكشف ls -la العناصر المخفية التي تبدأ بنقطة دون تعديلها.

bash إنشاء شجرة مشروع خاصة
lab=$(mktemp -d)
mkdir -p "$lab/project/notes"
printf '%s\n' 'draft' > "$lab/project/notes/plan.txt"
(cd "$lab/project" && cat ./notes/plan.txt)
الناتج المتوقع
draft

يختار mktemp مجلداً جديداً. تغيّر الصدفة بين القوسين موقعها داخل صدفة فرعية فقط ثم تقرأ الملاحظة المصطنعة. ويبقى المجلد متاحاً للفحص.

للنسخ والنقل نتائج مختلفة

ينشئ cp ملفاً آخر يحوي البيانات المنسوخة؛ ولا تغيّر التعديلات اللاحقة في نسخة الأخرى عادة. يعيد mv تسمية المدخل إن أمكن، وقد ينسخ المصدر ثم يزيله عند عبور أنظمة الملفات. تستحق الوجهة الموجودة مسبقاً حذراً خاصاً لأن الاستبدال قد يفقد محتواها. افحص المسارين واختر أسماء جديدة في التدريبات. يحتاج نسخ المجلدات إلى النسخ التكراري، وتتطلب الملكية والتواريخ والروابط والبيانات الممتدة خيارات حفظ صريحة. نسخ البايتات بنجاح ليس بالضرورة نسخة احتياطية أمينة للنظام.

يربط المجلد الأسماء بكائنات نظام الملفات. تعطي الروابط الصلبة أسماء متعددة للملف نفسه ضمن نظام ملفات واحد، فيظهر التعديل عبر اسم لبقية الأسماء. يخزن الرابط الرمزي مساراً آخر ويمكنه عبور أنظمة الملفات. ويُفسر الهدف النسبي بالنسبة إلى المجلد الحاوي للرابط. إزالة الرابط الرمزي لا تزيل الهدف، بينما قد يترك نقل الهدف رابطاً معلقاً. استخدم ls -l وreadlink لفحص العلاقة قبل تتبعها.

bash مقارنة نسخة باسم رمزي
lab=$(mktemp -d)
printf '%s\n' 'version one' > "$lab/original.txt"
cp -- "$lab/original.txt" "$lab/copy.txt"
ln -s original.txt "$lab/current.txt"
readlink -- "$lab/current.txt"
cat -- "$lab/copy.txt"
الناتج المتوقع
original.txt
version one

للنسخة محتوى مستقل. ويشير الرابط إلى original.txt نسبة إلى مجلده. تنهي -- معالجة الخيارات في الأوامر التي تدعمها.

الفحص قبل التغيير

امتداد الاسم اصطلاح لا ضمان لنوع المحتوى. يستطيع file فحص بصمات المحتوى، بينما يعرض stat الحجم والصلاحيات وسائر البيانات الوصفية. اقتبس دائماً المسار المحفوظ في متغير لتبقى المسافات ضمن وسيط واحد. تقبل أدوات GNU غالباً -- لفصل الخيارات عن المعاملات التي تبدأ بشرطة. مخرجات العرض موجهة للبشر وقد تلتبس مع الأسماء غير المعتادة؛ لذا ينبغي للأتمتة استخدام واجهات ذات حدود سجلات صريحة بدلاً من تحليل عرض ls الزخرفي.

الأخطاء الشائعة وإصلاحها

No such file or directory

لماذا يحدث؟
أحد المكونات غائب أو مجلد البداية خاطئ.
كيف تصلحه؟
افحص pwd وكل مكوّن أب.
كيف تتجنب تكراره؟
حدد جذر المشروع صراحة في العمل القابل للتكرار.

تحول اسم يحوي مسافات إلى وسائط متعددة

لماذا يحدث؟
استُخدم متغير موسّع دون اقتباس.
كيف تصلحه؟
مرر "$path" بوصفه وسيطاً واحداً.
كيف تتجنب تكراره؟
التزم باقتباس توسعات المسارات.

نقل الهدف يكسر الرابط الرمزي

لماذا يحدث؟
لم يعد المسار المخزن يشير إلى ملف موجود.
كيف تصلحه؟
افحص readlink وعدّل تصميم الرابط في المختبر.
كيف تتجنب تكراره؟
خطط لموقعي الهدف والرابط معاً.

اختبر فهمك

1. انطلاقاً من /home/learner/project فسّر ../shared/./guide.txt.

اعرض الحل المشروح

اصعد إلى /home/learner ثم ادخل shared، ولا تغيّر . الموقع، ثم اختر guide.txt. المسار المطلق الناتج /home/learner/shared/guide.txt. وقد يفشل البحث إذا غاب مكوّن أو مُنعت صلاحية عبور مجلد.

2. يحتاج مشروع إلى مسودة مستقلة واختصار ثابت للأصل. اختر العمليات واشرح أثر التعديلات.

اعرض الحل المشروح

استخدم cp لإنشاء draft.txt وln -s بهدف مناسب لإنشاء الاختصار. يغيّر تحرير المسودة محتواها المستقل. وقراءة الاختصار تتبع الأصل، فتظهر تعديلاته من خلاله. ولا تغني أي من العمليتين عن نسخة احتياطية مختبرة.

أهم ما تعلمته

  • فسّر المسارات من مجلد بداية معلوم.
  • افحص الوجهات وميّز النسخ من الروابط.

المراجع الرسمية