RM Command

هذا شرح أمر rm بشكل شامل وموسع للمبتدئين وبنفس الطريقة، مع أمثلة كثيرة داخل بلوكات كود + أهم خيارات الأمان + أخطاء شائعة وتحذيرات ضرورية.

⚠️ تحذير مهم جدًا للمبتدئ:
أمر rm يحذف نهائيًا (غالبًا لا يذهب لسلة المحذوفات). لذلك استخدمه بحذر، ويفضّل دائمًا تبدأ بـ rm -i أو تتأكد بـ ls قبل الحذف.

1) ما هو أمر rm ولماذا نستخدمه؟

أمر rm اختصار لـ Remove
وظيفته: حذف الملفات، ويمكنه أيضًا حذف المجلدات (لكن يحتاج خيارات).

تستخدمه عندما تريد:

  • حذف ملف لم تعد تحتاجه
  • تنظيف مجلد من ملفات مؤقتة
  • حذف مجلد كامل مع محتواه (بحذر)
2) الصيغة العامة (Syntax)
حذف ملف/ملفات
rm [OPTIONS] FILE...
Bash
حذف مجلد يحتاج خيار -r
rm -r [OPTIONS] DIRECTORY
Bash
3) حذف ملف واحد (أبسط مثال)
cd ~/project
touch test1.txt
rm test1.txt
Bash

تحقق:

ls -l test1.txt
Bash

قد يظهر:

ls: cannot access 'test1.txt': No such file or directory
Bash
4) حذف عدة ملفات دفعة واحدة
cd ~/project
touch a.txt b.txt c.txt
rm a.txt b.txt c.txt
Bash
5) حذف باستخدام نمط (Wildcards) مثل *

مثال حذف كل ملفات txt داخل المجلد الحالي:

rm *.txt
Bash

⚠️ انتبه: هذا سيحذف كل الملفات المطابقة فورًا.
الأفضل قبلها تتأكد ماذا سينحذف:

ls *.txt
Bash

ثم احذف.

6) حذف المجلدات (Directories)
أ) لماذا rm folder لا يعمل؟

لو جربت:

rm mydir
Bash

غالبًا يعطي:

rm: cannot remove 'mydir': Is a directory
Bash
ب) حذف مجلد مع محتوياته: -r (Recursive)
mkdir -p ~/project/test_dir
touch ~/project/test_dir/file1.txt
rm -r ~/project/test_dir
Bash

-r يعني يحذف المجلد وكل ما بداخله (ملفات + مجلدات فرعية).

7) خيارات الأمان المهمة للمبتدئ
أ) -i يسألك قبل كل حذف (Interactive) ✅

ممتاز لتجنب الأخطاء:

rm -i file1.txt
Bash

مثال سؤال:

rm: remove regular file 'file1.txt'? y
Bash
ب) -I (حماية وسط) ✅

يسألك مرة واحدة إذا الحذف كثير/مجلد:

rm -I *.log
rm -rI mydir
Bash

مناسب إذا لا تريد أسئلة لكل ملف.

ج) -f حذف بالقوة بدون سؤال (Force) ⚠️
rm -f file1.txt
Bash
د) الأكثر خطورة: rm -rf ⚠️⚠️

يحذف مجلد بالكامل بدون أي سؤال:

rm -rf ~/project/test_dir
Bash

لا تستخدم rm -rf إلا وأنت متأكد 100%.

8) عرض ما يحدث أثناء الحذف (Verbose)

بعض الأنظمة تدعم -v:

rm -v file1.txt
rm -rv mydir
Bash
9) أفضل عادات قبل استخدام rm (مهم جدًا)
عادة 1: اعرض قبل أن تحذف
ls -la
Bash
عادة 2: إذا ستستخدم wildcard اعرضه أولًا
ls ~/project/test_dir/*
rm ~/project/test_dir/*
Bash
عادة 3: استخدم -i في البداية
rm -i *.txt
Bash
10) أمثلة عملية شائعة
أ) حذف ملف داخل مسار
rm ~/project/old_notes.txt
Bash
ب) حذف ملفات مؤقتة مثل .tmp
rm -i *.tmp
Bash
ج) حذف مجلد build أو dist (شائع في المشاريع)
rm -rI build
rm -rI dist
Bash
11) أخطاء شائعة وحلولها
أ) “No such file or directory”

يعني الملف غير موجود أو الاسم غلط.
✅ الحل:

ls
pwd
Bash
ب) “Is a directory”

أنت تحذف مجلد بدون -r.
✅ الحل:

rm -r folder_name
Bash
ج) حذف ملفات مخفية بالنجمة *

الأمر:

rm *
Bash

لن يحذف الملفات المخفية مثل .env (لأنها تبدأ بنقطة).
لحذف المخفي تحتاج نمط مختلف (بحذر شديد):

rm -i .*
Bash

⚠️ هذا قد يلمس .. في بعض الحالات، لذلك لا أنصح به للمبتدئ.
الأفضل تحدد أسماء الملفات المخفية بالضبط:

rm -i .env .cachefile
Bash
12) تدريب عملي آمن للمبتدئ (Practice)

نفّذ التدريب داخل مجلد تجريبي فقط:

cd ~/project
mkdir -p rm_practice/test_dir
touch rm_practice/test_dir/file1.txt rm_practice/test_dir/file2.txt rm_practice/test_dir/file3.txt

# 1) اعرض المحتويات
ls -l rm_practice/test_dir

# 2) احذف ملف واحد بأمان
rm -i rm_practice/test_dir/file1.txt

# 3) احذف ملفات متعددة
rm -i rm_practice/test_dir/file2.txt rm_practice/test_dir/file3.txt

# 4) احذف المجلد كامل (بسؤال واحد)
rm -rI rm_practice/test_dir

# 5) اعرض النتيجة
ls -l rm_practice
Bash
هل الشرح الأصلي كافي؟

هو جيد كبداية، لكن يحتاج توضيح وتصحيح نقطتين مهمتين:

  1. ليس دائمًا rm يسأل افتراضيًا — في كثير توزيعات لينكس rm لا يسأل إلا إذا استخدمت -i أو عند alias مثل rm='rm -i'.
  2. لازم نركز على عادات الأمان: ls قبل rm, واستخدام -i أو -I خصوصًا مع -r.