Kodokon kodokon.com

المسارات النسبية والمطلقة ومحارف البدل

أشِر إلى أي ملف بمسار مطلق أو نسبي، واعمل على عدة ملفات دفعة واحدة.

8 دقيقة · 3 أسئلة

افتح هذا الدرس في Kodokon

هناك طريقتان لقول أين يوجد ملف، تمامًا كما تُعطي عنوانًا. المسار المطلق هو العنوان البريدي الكامل: يبدأ من الجذر ويعمل من أي مكان. وعلى macOS وLinux يبدأ دائمًا بشرطة مائلة أمامية /، مثلًا /home/yoann/my-project/index.html. وعلى Windows يبدأ بحرف قرص، مثلًا C:\Users\yoann\my-project.

أما المسار النسبي فهو أشبه بقولك "الباب الثاني على اليسار": فهو يبدأ من المجلّد الذي أنت فيه حاليًا. وثلاثة رموز تكفي للتعبير عن أي شيء. النقطة . تعني المجلّد الحالي. والنقطتان .. تعنيان المجلّد الأب. وعلامة ~ تعني مجلّدك الشخصي. وتربطها معًا بشرطات مائلة لتبني مسارًا.

BASH
cd /home/yoann/my-project
cd ~/my-project
cd ../other-project
cat ./src/index.html
cp ../photo.jpg .
المجلّد نفسه يُبلَغ بشكل مطلق ثم بشكل نسبي، ونسخة إلى المجلّد الحالي.

حين تحتاج إلى العمل على عشرة ملفات، لن تكتب عشرة أوامر. فالصَّدَفة تتعرّف على محارف البدل، وتُسمّى أيضًا الأنماط: وهي محارف خاصة تحلّ محلّ محرف أو أكثر مجهول. النجمة * تحلّ محلّ أي تسلسل من المحارف، بما في ذلك لا شيء إطلاقًا. وعلامة الاستفهام ? تحلّ محلّ محرف واحد بالضبط. والقوسان المعقوفان [ ] يقبلان أي واحد من المحارف المذكورة بداخلهما.

BASH
ls *.html
ls src/*.css
ls photo-?.jpg
ls report-202[45].pdf
cp *.txt archive/
كل ملفات .html، وملفات .css في مجلّد فرعي، وphoto-1 إلى photo-9، وتقريرا 2024 و2025.

تفصيل أخير يُجنّبك متاعب كثيرة: على macOS وLinux، أسماء الملفات حسّاسة لحالة الأحرف. فـ Photo.jpg وphoto.jpg ملفان مختلفان، ولن يجد ls photo* الأول منهما. أما Windows فلا يفرّق بينهما. ولذلك قد يفشل مشروع يعمل على جهاز Windows لديك حين يُشغَّل على خادم Linux الذي يستضيفه، لمجرّد حرف كبير واحد.

اختبار المعرفة

تأكّد من أنك تذكّرت النقاط الأساسية في هذا الدرس.

  1. على macOS أو Linux، بأي شيء يبدأ المسار المطلق دائمًا؟
    • بنقطة .
    • بشرطة مائلة أمامية /
    • بعلامة ~
    • باسم المجلّد الحالي
  2. ما الذي يطابقه النمط *.html؟
    • كل ملف ينتهي اسمه بـ .html
    • الملف المسمّى بالضبط *.html فقط
    • كل ملف في المجلّد، مهما كان نوعه
  3. تريد حذف كل ملفات .tmp بأمان. ما الاحتياط الذي تتّخذه؟
    • تشغيل rm *.tmp ثم التحقّق بـ ls
    • تشغيل ls *.tmp أولًا لرؤية ما سيُحذف
    • لا شيء، فالصَّدَفة تطلب التأكيد دائمًا