تجاوز إلى المحتوى
العربية
المستوى 1: أول ثلاثين دقيقة لك في الـ terminal
الدرس 5 · +10 XP

إنشاء المجلدات

كنت تتنقّل بين مجلدات صنعها لك غيرك. الآن تصنع مجلداتك أنت.

الـ command هو mkdirmake directory. («directory» هي مجرد الكلمة القديمة في Unix للمجلد. وسترى الكلمتين تُستعملان بالتبادل إلى الأبد.)

الحالة الأساسية

اختر مكانًا آمنًا للّعب فيه — اكتب cd ~ للذهاب إلى المنزل أولًا، ثم:

mkdir sandbox

شغّل ls. هناك مجلد جديد اسمه sandbox. ادخل إليه:

cd sandbox

يمكنك الاستمرار في صنع مجلدات بالداخل:

mkdir notes
mkdir photos
mkdir code

الآن يُظهر ls ثلاثة مجلدات. لقد بنيت للتوّ filesystem صغيرًا.

الحالة التي تفاجئ الجميع مرة واحدة

ماذا لو أردت مجلدًا داخل مجلد آخر غير موجود بعد؟ جرّب:

mkdir projects/website/src

يعترض الـ terminal:

mkdir: cannot create directory 'projects/website/src': No such file or directory

افتراضيًا، يصنع mkdir آخر مجلد في الـ path فقط. يرفض أن يخترع لك المجلدات الوسطى المفقودة. (وهذا، إن فكّرت فيه، تحقّق أمان منصف — لا ينبغي للأخطاء المطبعية أن تنشئ بهدوء أشجار مجلدات جديدة بالكامل.)

الحلّ: -p

أضِف الـ flag ‏-p (اختصارًا لـ parents، أي الآباء):

mkdir -p projects/website/src

الآن ينشئ الـ terminal كلّ مجلد في الـ path غير موجود مسبقًا. projects، ثم website بداخله، ثم src بداخل ذلك. تمّ في طلقة واحدة.

للـ flag ‏-p خاصية ثانية مفيدة: لا يعترض إن كان المجلد موجودًا بالفعل. الـ command ‏mkdir foo المجرّد يُخطئ إن كان foo موجودًا هناك؛ أما mkdir -p foo فينجح بصمت. وهذا يجعله الخيار الأكثر أمانًا في الـ scripts التي تشغّلها أكثر من مرة.

-p واحد من تلك الـ flags الصغيرة التي ستكتبها عشرة آلاف مرة. احفظه.

عدّة مجلدات دفعة واحدة

يمكنك إعطاء mkdir عدّة أسماء دفعة واحدة. تُنشأ جنبًا إلى جنب:

mkdir drafts final archive

ثلاثة مجلدات بضغطة واحدة. هذا يعمل مع كلّ command «اصنع شيئًا» تقريبًا في الـ terminal — مرّر عدّة أسماء، تحصل على عدّة نتائج.

ما الذي تعلّمته

  • mkdir <name> — اصنع مجلدًا واحدًا.
  • mkdir -p <path> — اصنع شجرة متداخلة بأكملها، بلا أخطاء إن كانت بعض أجزائها موجودة مسبقًا.
  • mkdir a b c — اصنع عدّة مجلدات جنبًا إلى جنب دفعة واحدة.

التالي: صنع الملفات.