إنشاء المجلدات
كنت تتنقّل بين مجلدات صنعها لك غيرك. الآن تصنع مجلداتك أنت.
الـ command هو mkdir — make 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— اصنع عدّة مجلدات جنبًا إلى جنب دفعة واحدة.
التالي: صنع الملفات.