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

الحذف (بحذر)

عليك أن تعرف منذ البداية: rm لا يضع الأشياء في سلة المهملات. إنه يحذفها فورًا ونهائيًا. لا توجد سلة محذوفات تستردّ منها الملفات. لا يوجد «undo». لا يوجد «هل أنت متأكد؟» — ليس افتراضيًا.

هذا ليس تكتيك تخويف. إنها أهمّ حقيقة منفردة عن الـ terminal، وكلّ مطوّر حيّ قد لُدغ بها مرة واحدة على الأقل. اقرأ هذا الدرس كاملًا قبل أن تشغّل أمرًا واحدًا منه.

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

لحذف ملف:

echo "throwaway" > junk.txt
rm junk.txt

شغّل ls. اختفى junk.txt. لم يقل الـ terminal شيئًا — الصمت هنا يعني النجاح.

يمكنك حذف عدّة ملفات دفعة واحدة:

touch a.txt b.txt c.txt
rm a.txt b.txt c.txt

الثلاثة جميعًا اختفت، فورًا.

حذف مجلد

جرّب هذا على مجلد فارغ:

mkdir empty-folder
rm empty-folder

ستحصل على:

rm: empty-folder: is a directory

افتراضيًا، يرفض rm حذف المجلدات. تمامًا كما في cp، يريد الـ terminal أن تكون صريحًا بشأن لمس أشجار كاملة من الملفات.

الـ flag هو -r (recursive — المجلد وكلّ ما بداخله):

rm -r empty-folder

اختفى. ولو كان للمجلد أشياء بداخله، لاختفت هي أيضًا. كلّها. استخدام rm -r على مجلد مدمّر تمامًا كما يبدو.

الـ flag الذي ينبغي أن يجعلك متوتّرًا

سترى هذا على الإنترنت كثيرًا:

rm -rf <folder>

علامة -f تعني force — لا تسأل، ولا تعترض على الملفات المفقودة، فقط احذف. مع -r، يصبح أمر «احذف كلّ شيء، مهما كان.» إنه مفيد. وهو أيضًا أشهر طريقة منفردة لتدمير حاسوب.

الكارثة الأسطورية هي:

rm -rf /

هذا «احذف كلّ شيء تحت /» — وهو على جهاز Mac أو Linux نظام الملفات بأكمله. الأنظمة الحديثة ترفض هذا الأمر بالتحديد، لكنّ أخطاء مطبعية مثل rm -rf / mystuff (لاحظ المسافة الإضافية بعد /) قد نسفت production servers وحواسيب محمولة شخصية على حدّ سواء.

قاعدة عامة: لا تشغّل rm -rf أبدًا من دون أن تعيد قراءة الـ path مرّتين. بصوت مرتفع، إن كنت متعبًا.

كيف تكون حذرًا من دون أن تكون خائفًا

ثلاث عادات تمنع rm من لدغك:

1. استخدم Tab completion. إن لم يوسّع Tab الاسم، فالملف غير موجود — ولا ينبغي أن تحذفه.

2. استخدم -i حتى يصبح ذاكرة عضلية. الـ flag -i (interactive) يجعل rm يسأل قبل كلّ عملية حذف:

rm -i important.txt

ستكتب y وتضغط Enter للتأكيد. بطيء؟ نعم. يستحقّ العناء؟ نعم أيضًا — على الأقل حتى يصبح الحذف أمرًا اعتياديًا.

3. ls أولًا، rm ثانيًا. شغّل ls (أو ls -la) لترى ما أنت على وشك حذفه. ثم احذف. ثانيتان من النظر قد أنقذتا ملفات أكثر مما أنقذته كلّ tools النسخ الاحتياطي مجتمعة.

البديل الأكثر أمانًا

إن كان rm يجعلك تتصبّب عرقًا، فثبّت trash-cli (أو trash على macOS عبر Homebrew). إنه ينقل الملفات إلى سلة المهملات الفعلية لنظامك بدلًا من حذفها، فتستطيع استعادتها. يستحقّ الفعل وأنت تتعلّم.

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

  • rm <file> — احذف ملفًا. فورًا. نهائيًا.
  • rm -r <folder> — احذف مجلدًا وكلّ ما بداخله.
  • rm -i — اسأل قبل كلّ عملية حذف (استخدمها بسخاء وأنت جديد).
  • rm -rf — نسخة «بلا أيّ أسئلة». اكتبها باحترام.

أنت الآن تعرف الأفعال الخمسة كلّها لإدارة الملفات في الـ terminal: السرد، والصنع، والنسخ، والنقل، والحذف. الدرس الأخير يحيكها معًا في مشروع حقيقي.