أمر Linux rm: كل ما تحتاج إلى معرفته
يحذف الأمر Linux rm الملفات والدلائل. لاستخدام هذه الأداة بأمان ، يجب أن تكون متأكدًا مما سيحدث عندما تضغط على “Enter”. إليك ما تحتاج إلى معرفته.
ما المقصود بأمر rm في Linux؟
أمر Linux rm مخصص بشكل أساسي لحذف الملفات. إنه أحد الأشياء التي يواجهها معظم الأشخاص بعد وقت قصير من بدء استخدام Linux. فقط بحكم كونك وافدًا جديدًا إلى Linux ، فمن المحتمل أن ترتكب أخطاء. ستنشئ الملفات أو تنسخها عن طريق الخطأ أو باسم خاطئ أو إلى مكان خاطئ. كل ذلك جزء من منحنى التعلم لسطر الأوامر. عمليات التنظيف لمثل هذه الأخطاء تشمل rm.
يمكن للأمر rm حذف الملفات أو مجموعات الملفات أو الدلائل أو أشجار الدليل الكاملة. لهذا السبب يجب استخدامه بحذر. استخدام rm ليس بالأمر الصعب ، لكن عقوبة الفشل عالية.
عندما يتم حذف ملف مع rm ، فإنه يختفي. لا يتم نقله إلى سلة المهملات. يتم طمسها على الفور. هذا لا يعني أنه يجب عليك تجنب استخدام rm. ولكن لاستخدامه بأمان ، يجب أن تكون على دراية بما يمكنه فعله ، والتأكد من أنك تستخدمه بشكل صحيح.
بعض الأدوات أكثر خطورة من غيرها ، وأقل تسامحًا مع الأخطاء. لهذا السبب لم يكن هناك فيلم يسمى The Texas Wrench Massacre. rm ليس مفتاح ربط ، إنه بالتأكيد منشار بالمنشار.
يستخدم الناس المناشير طوال اليوم كل يوم ، وطالما أنهم يستخدمون واحدًا بمسؤولية ووعي ، فهم بخير. إنها نفس الصفقة مع rm. عندما تسحب rm من حقيبة الأدوات الخاصة بك ، يجب أن تبطئ وتحقق ثم تحقق مرة أخرى من سطر الأوامر.
الأمر rm قابل للتنفيذ ، وليس جزءًا من الصدفة. لذلك ، على الرغم من أننا نستخدم Bash هنا ، فهو نظام Linux rm القياسي ، وليس Bash rm خاصًا.
كيفية حذف الملفات باستخدام rm
إن أبسط طريقة لاستخدام rm هي توفير اسم الملف الذي تريد حذفه.
rm config.gc
تتم إعادتك بصمت إلى سطر الأوامر. يتبنى rm موقف Linux الكلاسيكي المتقارب أنه إذا لم يشتكي من أي شيء ، فيمكنك افتراض أنه قام بما طلبته. يؤدي توفير اسم ملف مثل هذا إلى قيام rm بالبحث عن الملف في دليل العمل الحالي.
يمكنك توفير أسماء ملفات متعددة في سطر الأوامر. يمكنك أيضًا توفير مسار دليل إذا لم يكن الملف الذي تريد حذفه موجودًا في الدليل الحالي.
rm memlog.sh /home/dave/dev-archive/config.gc
مرة أخرى ، لا يتم الإبلاغ عن أي شيء إذا تمكنت rm من حذف الملفات المحددة.
استخدام Wildcards مع rm
تسمح لك أحرف البدل بتحديد مجموعات من الملفات دون الحاجة إلى سرد الملفات الفردية في سطر الأوامر.
تمثل العلامة النجمية “*” أي سلسلة من الأحرف ، بما في ذلك لا شيء. علامة الاستفهام “؟” يمثل أي حرف واحد.
للتحقق من أن أحرف البدل الخاصة بك ستطابق ما تتوقعه منهم ، ولا شيء أكثر من ذلك ، يمكنك استخدامها مع ls قبل استخدامها مع rm.
لحذف جميع ملفات PNG في الدليل الحالي ، استخدم “* .png.” هذا يعني أنه سيتم مطابقة أي تسلسل من الأحرف متبوعًا بـ “.png”. عندما يتم حذف الملفات ، يمكننا استخدام ls للتحقق من اختفائها.
ls *.png
rm *.png
ls *.png
على جهاز الكمبيوتر التجريبي لدينا ، لدينا ملفان في الدليل الحالي بأسماء تبدأ بـ “config.”
يمكننا حذف كلاهما باستخدام حرف البدل بعلامة النجمة. إنه يطابق كلا الملفين لأن rm يبحث عن أسماء الملفات التي تبدأ بـ “config” ، متبوعة بأي تسلسل من الأحرف. في ملف واحد ، تسلسل الأحرف هذا هو “.sl3” ، امتداد اسم الملف. لا يحتوي اسم الملف الآخر على أحرف بعد “config” ، ولكن نظرًا لأن العلامة النجمية تطابق أي أحرف أو لا تطابق أي أحرف ، فإنها تطابق اسم الملف هذا أيضًا.
ls config*
rm config*
ls config*
يمكنك استخدام علامة الاستفهام في أزواج. سيؤدي هذا إلى حذف الملفات التي تحتوي على امتدادات ملفات مكونة من حرفين بالضبط.
ls *.??
rm *.??
ls *.??
استخدام rm بشكل تفاعلي
تتمثل الطريقة الآمنة لاستخدام rm في إجباره على طلب التأكيد قبل حذف كل ملف. يتيح لك الخيار -i (تفاعلي) القيام بذلك. عند إضافة هذا الخيار إلى سطر الأوامر ، سيطالبك rm قبل كل عملية حذف ، مما يمنحك فرصة لتخطي الإجراءات التي لم تكن تقصدها.
سنستخدم الخيار -i (تفاعلي) في هذا الأمر. يحاول حذف جميع الملفات بامتداد ملف ذو حرف واحد.
rm -i *.?
يتم تقديم كل ملف مطابق بدوره. إذا أجبت بـ “Y” أو “Y” ، فسيتم حذف الملف. إذا أجبت بـ “n” ، يتم الاحتفاظ بالملف. في الواقع ، إذا أجبت بأي شيء بخلاف “y” أو “y” ، فسيتم الاحتفاظ بالملف. يمكنك فقط الضغط على “إدخال” ويتم الاحتفاظ بالملف.
يمكنك العمل بسرعة من خلال قائمة الملفات الخاصة بك ، وحذف الملفات أو تخطيها لاختيار الملفات التي تريد إزالتها. كما سنرى ، يمكنك استخدام الخيار i- (تفاعلي) مع خيارات rm الأخرى.
باستخدام خيار القوة rm
إذا حاولت حذف ملف للقراءة فقط ، فسيطالبك rm بالتأكيد قبل حذف الملف. هذه شبكة أمان جيدة ، ولكنها قد تصبح مملة إذا كان لديك الكثير من الملفات التي تريد حذفها.
rm geonames.sl3
يرشد الخيار -f (القوة) إلى rm بعدم المطالبة مطلقًا. أنت تقول له “نعم ، احذف جميع الملفات التي عادة ما تطالبني بها”. كما يمنع rm من الشكوى من عدم وجود ملفات.
rm -f geonames.sl3
غالبًا ما يُستخدم الخيار -f (فرض) عندما تحذف مجموعة متداخلة من الملفات والأدلة.
حذف الدلائل مع rm
يمكن للأمر rm اختياريًا إزالة الدلائل أيضًا ، جنبًا إلى جنب مع الملفات التي تحتوي عليها. هذا مشابه للأمر rmdir ، لكن rmdir لا يمكنه حذف الدلائل التي تحتوي على ملفات. يقوم فقط بحذف الدلائل الفارغة. يمكن للأمر rm حذف الدلائل التي تحتوي على ملفات وأدلة أخرى بسهولة.
يشبه حذف دليل حذف ملف. نحن نقدم اسم الدليل في سطر الأوامر. نحتاج إلى تضمين الخيار -d (الدليل). كما فعلنا عندما كنا نحذف الملفات ، يمكننا تقديم أسماء عدة أدلة. يمكننا توفير مسار إلى الدليل غير موجود في دليل العمل الحالي.
rm -d old-projects
إذا كان الدليل يحتوي على ملفات ، فسوف يفشل هذا.
لحذف دليل ومحتوياته ، استخدم العلامة -r (العودية). يؤدي هذا إلى حذف الدليل وملفاته وأي أدلة متداخلة يحتوي عليها.
rm -d archive
rm -r archive
نجح الأمر الثاني.
لتبديل rm إلى وضع المنشار الكامل ، يمكننا الجمع بين خياري -r (العودي) و -f (القوة). هذا يخبر rm بحذف جميع الملفات والمجلدات بشكل متكرر في شجرة الدليل ، حتى لو كانت للقراءة فقط ، ودون مطالبتنا بذلك.
على جهاز الكمبيوتر التجريبي لدينا ، لدينا دليل يسمى “الشفرة المرحّلة”. يحتوي على ملفات ودليل آخر يسمى “6502.” يحتوي الدليل “6502” أيضًا على ملفات ودليل آخر يسمى “ASM”. هناك ملفات في هذا الدليل أيضًا. بعض الملفات للقراءة فقط.
سنقوم أيضًا بتضمين الأمر -v (مطوّل) حتى يخبرنا rm بما يفعله.
rm -rfv migrated-code
في الإخراج يمكننا أن نرى أنه تمت إزالة الملفات وعندما تكون فارغة ، تتم إزالة الدلائل أيضًا.
تجنب الأخطاء عند استخدام rm
يمكن أن تسبب المسافات والأحرف الغريبة الأخرى في أسماء الملفات مشاكل. أسماء الملفات التي تبدأ بواصلة “-” على سبيل المثال ، يمكن الخلط بينها وبين خيارات سطر الأوامر. إذا كان لدينا ملف يسمى “-contributors.txt” ، فسيحاول rm معالجة الاسم كسلسلة من خيارات سطر الأوامر.
نظرًا لأن rm ليس لديه خيار يسمى “-c” ، يفشل تحليل سطر الأوامر ولا يتم حذف الملف. لحذف الملف ، يجب أن تسبقه بـ “./” لتوفير مسار إليه.
rm -contributors.txt
rm ./-contributors.txt
المسافات في أسماء الملفات هي أيضًا مشكلة. إما أن تقوم باقتباس اسم الملف بالكامل ، أو استخدام علامة التبويب لإدراج اسم الملف في سطر الأوامر نيابة عنك ، مع تخطي المسافات كما تفعل. إذا لم تستخدم أيًا من هذين الخيارين ، فسيعامل rm كل جزء من اسم الملف كملف فردي.
هنا ، لدينا ملفان ، أحدهما يسمى “النسخ الاحتياطي” والآخر يسمى “النسخ الاحتياطي للحذف”. يمكننا توضيح المشكلة مع أسماء الملفات هذه باستخدام ls. إذا حاولنا استخدام ls في ملف “النسخ الاحتياطي للحذف” ولم نفلت من اسم الملف أو ننقله ، يفشل الأمر.
ls -hl backup to delete
ls يشتكي من أنه لا يمكنه العثور على الملفات التي تسمى “to” أو “delete” ، لكنه يعثر على ملف يسمى “backup”. هذا ما سيفعله rm أيضًا. ستشتكي من فقدان ملفين ، وبعد ذلك ستحذف الملف المسمى “النسخ الاحتياطي” ، وهو ما لم نرغب فيه.
rm backup to delete
يعتقد rm أنه يعمل مع ثلاثة ملفات ، “نسخ احتياطي” و “إلى” و “حذف”. يشتكي من أنه لا يمكنه العثور على “إلى” و “حذف” ، لكنه يعثر على “نسخة احتياطية” ويحذفها بصمت.
يسمح اقتباس اسم الملف لـ rm بحذف الملف الصحيح.
rm 'backup to delete'
يمكنك أيضًا الهروب من المساحات باستخدام الشرطة المائلة للخلف “\” ، مثل هذا:
rm backup\ to\ delete
إذا استخدمت علامة التبويب “إكمال علامة التبويب” لإدخال أسماء الملفات ، فسيتم إفلاتها تلقائيًا ، إذا لزم الأمر.
ما معدات الوقاية الشخصية؟
على عكس المناشير الواقعية ، لا توجد معدات حماية شخصية يمكنك استخدامها مع rm.
ما يمكنك القيام به ، هو التحقق من بناء الجملة الخاص بك مع ls قبل تجربته مع rm ، واستخدام الوضع التفاعلي حتى تتمكن من تحديد ما يتم حذفه.
بخلاف ذلك ، إنها ممارسة حتى تشعر بالراحة والثقة. الطريقة الأكثر أمانًا للقيام بذلك هي نسخ مجموعة من ملفات الأضاحي إلى دليل والممارسة عليها.