منشور

شرح الأمر rm في لينكس مع الأمثلة

شرح كيفية حذف الملفات والمجلدات باستخدام سطر الأوامر على اللينكس مع الأمثلة

هذا المقال جزء من سلسلة أساسيات أوامر لينكس

الأمر rm وهو اختصار لـ remove ويُستخدم لحذف الملفات.

صيغة الأمر

1
    rm [options] file1 file2 fileN

وبالتالي يمكن حذف ملف واحد أو أكثر من ملف بأمر واحد.

خيارات الأمر rm

الخيار الوصف
rm -i حذف تفاعلي أي السؤال قبل حذف أي ملف
rm -f حذف الملفات بشكل إجباري للملفات المحمية ضد الكتابة
rm -r الحذف التكراري ويعني حذف جميع الملفات والمجلدات الفرعية بجميع محتوياتهم

أمثلة على الأمر rm

حذف الملف a.txt

1
    $ rm a.txt

حذف الملفين b.txt و c.txt

1
    $ rm b.txt c.txt

استخدام حيار التفاعل والذي يسأل المستخدم قبل الحذف

1
2
    $ rm -i d.txt
    rm: remove regular empty file 'd.txt'? y

عند الضغط على y سيحذف الملف وأي زر آخر يعني عدم الموافقة على حذفه.

حذف جميع الملفات في المجلد الحالي

1
2
3
    $ rm *
    rm: cannot remove 'B': Is a directory
    rm: cannot remove 'C': Is a directory

نلاحظ ظهور رسالتي خطأ وهي أن B و C مجلدات وليست ملفات والأمر rm لا يستخدم عادة لحذف المجلدات، ولكن لجعله يحذف المجلدات أيضًا وبجميع محتوياتهم نكتب:

1
    $ rm -r *

تمرين

اكتب الأمر الذي يقوم بحذف ملف اسمه file.txt-

الحل:

نلاحظ أن الاسم يبدأ بالرمز - وكما نعلم أن هذا الرمز يُستخدم لتحديد خيارات الأوامر في اللينكس، إذا كيف سنعرف الأمر بأن هذا الرمز تابع لاسم الملف وليس مقصود به ذكر خيار من خيارات الأمر؟

أي إذا حاولنا كتابة التالي:

1
2
3
4
    $ rm -file.txt
    rm: unknown option -- l
    Try 'rm ./-file.txt' to remove the file '-file.txt'.
    Try 'rm --help' for more information.

نجد أنه لم يحذف الملف وأعطى رسالة خطأ تفيد بأنه لايوجد خيار للأمر rm بهذا الاسم.

لحل هذه المشكلة نضيف شخطتين -- قبل الاسم للتمييز بين خيارات الأمر وبين الشخطة الخاصة باسم الملف، وبالتالي نكتب:

1
    $ rm -- -file.txt

ﻷي استفسار أو إضافة لا تتردد بمراسلتي

المرجع:

التالي: الأمر rmdir

هذا المنشور تحت ترخيص CC BY 4.0 بواسطة المؤلف.