MV Command

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

أمر mv اختصار لـ Move، ووظيفته:

  1. نقل الملفات/المجلدات من مكان إلى مكان
  2. إعادة تسمية الملفات/المجلدات

ملاحظة مهمة:
mv لا “ينسخ” مثل cp، بل ينقل (يعني الأصل يختفي من مكانه القديم) — إلا إذا كان النقل بين أنظمة ملفات مختلفة، حينها قد يتصرف كـ “نسخ ثم حذف” لكن النتيجة بالنسبة لك: الملف ينتقل.

2) الصيغة العامة (Syntax)
نقل/إعادة تسمية عنصر واحد
mv [OPTIONS] SOURCE DEST
Bash
نقل عدة عناصر إلى مجلد
mv [OPTIONS] SOURCE1 SOURCE2 ... DIRECTORY/
Bash
3) إعادة تسمية ملف (Rename)

إعادة التسمية تتم عندما يكون المصدر والوجهة في نفس المكان ولكن باسم مختلف.

مثال بسيط
cd ~/project
touch original_file.txt
mv original_file.txt renamed_file.txt
Bash

تحقق:

ls -l
Bash

غالبًا mv لا يطبع شيء عند النجاح.

4) نقل ملف إلى مجلد (Move)
نقل ملف إلى مجلد موجود
cd ~/project
mkdir -p new_dir
touch file1.txt

mv file1.txt new_dir/
Bash

تحقق:

ls -l new_dir
Bash

وللتأكد أن الملف لم يعد في مكانه القديم:

ls -l file1.txt
Bash

قد يظهر:

ls: cannot access 'file1.txt': No such file or directory
Bash
5) نقل عدة ملفات دفعة واحدة
نقل ملفات متعددة إلى مجلد
cd ~/project
mkdir -p new_dir
touch file1.txt file2.txt file3.txt

mv file1.txt file2.txt file3.txt new_dir/
Bash

تحقق:

ls -l new_dir
Bash
6) نقل/إعادة تسمية مجلد
أ) إعادة تسمية مجلد
cd ~/project
mkdir -p old_folder
mv old_folder new_folder
Bash
ب) نقل مجلد لمكان آخر
mkdir -p destination
mv new_folder destination/
Bash
7) خيارات مهمة جدًا للمبتدئين (تحميك)
أ) -i يسألك قبل الاستبدال (Interactive) ✅

مفيد جدًا حتى لا تستبدل ملف بالغلط:

mv -i source.txt destination.txt
Bash

إذا كان destination.txt موجودًا سيظهر سؤال مثل:

mv: overwrite 'destination.txt'?
Bash
ب) -f يجبر الاستبدال بدون سؤال (Force) ⚠️
mv -f source.txt destination.txt
Bash

للمبتدئ: استخدمه بحذر.

ج) -v يعرض ما يحدث (Verbose) ✅

ممتاز للتعلم والمتابعة:

mv -v file1.txt new_dir/
Bash
8) حالات مهمة لازم تعرفها
أ) إذا الوجهة مجلد موجود
mv file.txt folder/
Bash

الملف يدخل داخل folder بنفس الاسم.

ب) إذا الوجهة “اسم ملف”
mv file.txt file_new.txt
Bash

هذا Rename.

ج) نقل وRename في نفس الوقت
mv ~/project/file.txt ~/project/new_dir/file_renamed.txt
Bash
9) التعامل مع المسافات في أسماء الملفات

لازم تستخدم اقتباس:

mv "My Notes.txt" "Notes 2025.txt"
Bash
10) نقل باستخدام Patterns (مثل *.txt) مع انتباه

مثال نقل كل ملفات txt إلى مجلد:

mkdir -p texts
mv *.txt texts/
Bash

انتبه: هذا ينقل كل txt من المجلد الحالي فقط.

11) أخطاء شائعة وحلولها
أ) الوجهة ليست مجلد عند نقل عدة ملفات

إذا كتبت:

mv file1.txt file2.txt renamed.txt
Bash

قد يعطي خطأ لأن عند نقل أكثر من ملف لازم الوجهة تكون مجلد.

✅ الحل:

mkdir -p dest
mv file1.txt file2.txt dest/
Bash
ب) “No such file or directory”

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

ls
pwd
Bash
ج) استبدال ملف بالغلط

✅ لتتجنب هذا استخدم:

mv -i file.txt dest/
Bash
12) تدريب سريع (Practice)

نفّذ هذا التدريب لتثبت الفهم:

cd ~/project
mkdir -p mv_practice/from mv_practice/to
touch mv_practice/from/a.txt mv_practice/from/b.txt mv_practice/from/c.txt

# 1) نقل ملف واحد
mv -v mv_practice/from/a.txt mv_practice/to/

# 2) نقل عدة ملفات
mv -v mv_practice/from/b.txt mv_practice/from/c.txt mv_practice/to/

# 3) إعادة تسمية داخل نفس المجلد
mv -v mv_practice/to/a.txt mv_practice/to/a_renamed.txt

# 4) عرض النتائج
ls -l mv_practice/to
ls -l mv_practice/from
Bash
هل الشرح الأصلي كافي؟

نعم كبداية، لكنه يحتاج توسعة للمبتدئ في:

  • الفرق بين (Rename) و (Move)
  • نقل/إعادة تسمية مجلدات
  • التعامل مع الاستبدال وتجنب الأخطاء (-i)
  • المسارات + Rename مع النقل
  • Patterns مثل *.txt