حول مخاطر 'rm'

click fraud protection

حتى لو كنت جديدًا في Terminal ، آمل أن يقدم لك شخص ما هذه النصيحة القيمة:

يكون دقيق جدا عند استخدام ملف جمهورية مقدونيا أمر لإزالة الملفات والمجلدات!

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

لماذا جمهورية مقدونيا يحتمل أن تكون خطرة؟

هناك سببان رئيسيان لماذا يجب أن تحترم وتخشى جمهورية مقدونيا يأمر. أولاً ، عند إزالة عنصر بامتداد جمهورية مقدونيا ذهب للأبد بمجرد الضغط على "رجوع". لا يمكنك إخراجها من سلة المهملات إذا غيرت رأيك. نعم ، هناك فرصة (ضئيلة) قد تتمكن من استرداد بعض أو كل ملفاتك المحذوفة باستخدام برنامج جهة خارجية ، مثل SubRosaSoft's 90 دولارًا FileSalvage. (لزيادة احتمالات استرداد الملفات ، تحتاج إلى التوقف عن استخدام جهاز Mac وتشغيل أداة استرداد الملفات على الفور. كلما طالت مدة استخدامك لجهاز Mac بعد ارتكاب خطأ ، قلت فرصتك في استعادة بياناتك.) ولكن دعنا نواجه الأمر ، بمجرد جمهورية مقدونيا شيء ما ، من المحتمل أنه ذهب إلى الأبد. Hasta la vista ، بيانات!

الخطر الثاني مع جمهورية مقدونيا هو أنه ، لكونه أمر Unix ، فهو حرفي تمامًا ، وسيفعل ما هو مطلوب بالضبط - حتى لو كان الطلب يعني تدمير النظام ذاته جمهورية مقدونيا يعمل على. ماذا يعني ذالك؟ هذا يعني انه جمهورية مقدونيا قوي جدًا ، مع القدرة على إزالة الملفات من أي مكان على جهازك ، وقد يؤدي هذا الخطأ المطبعي الصغير إلى عواقب سلبية كبيرة جدًا. ضع في اعتبارك المثال التالي:

تحذير: الرجاء عدم تجربة الأمر المذكور في المثال التالي. سوف تعمل أشياء سيئة للغاية لجهازك. حقًا. حقا ، حقا سيء. لاتجرب هذا في المنزل. لا تجرب هذا على جهاز كمبيوتر صديق. لا تحاول هذه الفترة. لقد تم تحذيرك.

افترض أنك كنت تعمل على شيء ما في Terminal في مجلد منزلك ، وتذكرت أن زوجتك أرادت منك إزالة شيء ما من مجلد المستندات. لم تعد بحاجة إلى مجلد "مستندات العمل" الخاص بها ، حيث أنها غيرت أصحاب العمل مؤخرًا. نظرًا لكونك نوع الشخص الكسول الفعال ، فأنت تدرك أنه يمكنك القيام بذلك مباشرة من Terminal ، دون حتى تغيير الدلائل. لذلك تكتب:

sudo rm -rf / المستخدمون / الزوج / المستندات / مستندات العمل

(ال -الترددات اللاسلكية الأعلام تعني "بشكل متكرر ( ص ) اجتياز المجلد ، وإزالة جميع الملفات والمجلدات الفرعية ، "و" فرض ( F ) الإزالة وتجاهل الأذونات ". سيتعين عليك استخدام كلا الخيارين ، جنبًا إلى جنب مع سودو، لإزالة مجلد من دليل مستخدم آخر.)

تبدو فكرة جيدة ، ولكن بمجرد الضغط على "رجوع" ، فإنك تبدأ في تنفيذ إجراء سريع جدًا ومؤلِم للغاية — لقد قمت بحذف ملك مجلد المستندات مع كل ما بداخله! ييكيس! بالطبع ، لديك نسخة احتياطية حديثة (أليس كذلك ؟!) ، لذا فهي مجرد إزعاج بسيط وليست كارثة كبيرة. لكن كيف حدث هذا وكيف يمكنك منعه في المستقبل؟

ماذا حدث؟

في المثال أعلاه ، كان هناك حرف واحد مفقود - شرطة مائلة واحدة - وهذا ما تسبب في الدمار. في Terminal ، إذا كنت تشير إلى ملف أو مجلد باسم يتضمن مسافة ، فأنت يجب إما أن تضع اسمها بين علامتي اقتباس ، أو تضع شرطة مائلة للخلف قبل الفراغ ، على النحو التالي:

	"/ المستخدمون / الزوج / المستندات / مستندات العمل" / المستخدمون / الزوج / المستندات / مستندات العمل	

تكمن المشكلة في أن المحطة الطرفية ترى المساحة في الأمر الأصلي الخاص بك ، وتفسرها كمحدد - أي شيء يستخدم لفصل الوسائط في سطر الأوامر. و ال جمهورية مقدونيا يقبل الأمر عدة ملفات على سطر إدخال واحد ، كما هو الحال في rm file1 ملف 2 ملف 3. نتيجة لذلك ، عازب الخاص بك جمهورية مقدونيا كان الأمر في الواقع أمرين:

	rm -rf / Users / الزوج / المستندات / Work rm -rf Documents	

الآن ، الأول جمهورية مقدونيا ستفشل ، على افتراض أن زوجتك ليس لديها مجلد يُسمى ببساطة "العمل" في مجلد "المستندات" الخاص بها. ومع ذلك ، فإنه لا يسبب أي نوع من رسائل الخطأ ، ولا يفعل ذلك جمهورية مقدونيا توقف عن التشغيل لمجرد أنه لا يمكنه العثور على الملف أو المجلد الذي أشرت إليه. بدلاً من ذلك ، يلاحظ المساحة ، ويفكر ، "آه ، هذا مجلد آخر يجب أن أحذفه".

نظرًا لأنك كنت تعمل في المجلد الرئيسي الخاص بك ، ومجلد المستندات هو مجلد من المستوى الأعلى داخل هذا الدليل ، فإن ملف جمهورية مقدونيا الأمر بسعادة يفعل العطاءات الخاصة بك ويزيلها ، تمامًا كما طلبت. لوطي. ذهب الجميع. لم تكن بحاجة حقًا إلى رسالتك على أي حال ، أليس كذلك؟ ومنذ ذلك الحين جمهورية مقدونيا يعمل بدون أي ملاحظات أو تحذيرات ، فلن تعرف أن هناك خطأ ما حتى فوات الأوان. وكل ذلك لأنك تركت شرطة مائلة للخلف بسيطة.

ملاحظة: في المثال الذي قدمته ، لن تفقد مجلد "المستندات" إلا إذا كنت تعمل في الدليل الرئيسي - أو إذا كان لديك مجلد باسم "المستندات" في مجلد آخر كنت تعمل فيه. ومع ذلك ، أعتقد أنه يمكنك بسهولة تعميم الضرر الذي قد تسببه بأخطاء بسيطة.

الوقاية من الكوارث 101

لحسن الحظ ، هناك بعض الخطوات السهلة التي يمكنك اتخاذها لإنقاذ نفسك من مثل هذه الكوارث. الأول ، من الواضح ، هو توخي الحذر الشديد عند الاستخدام جمهورية مقدونيا، خاصة مع ص (عودي) و F (قسري) الخيارات. ولكن حتى مع الحذر الشديد ، نرتكب جميعًا أخطاء - كل شخص أعرفه تقريبًا ، بمن فيهم أنا ، ارتكب خطأ غبيًا واحدًا على الأقل جمهورية مقدونيا. إذن ، ما وراء الفطرة السليمة ، ماذا يمكنك أن تفعل أيضًا؟

الحل الأكثر أمانا

قصير من عدم الاستخدام جمهورية مقدونيا على الإطلاق ، الحل الأفضل التالي هو دائماً يستخدم rm -i. ال -أنا الخيار يشير إلى تفاعلي ، ويفرض عليك قبول كل حذف يدويًا. على سبيل المثال ، إذا أردت إزالة جميع الملفات التي يبدأ اسمها بـ "MyPic" ، فيمكنك القيام بما يلي:

	$ rm -i MyPic * remove MyPic1.jpg؟ y إزالة MyPic2.jpg؟ y إزالة MyPic3.jpg؟ y إزالة MyPic4.jpg؟ ذ	

هذه حقًا الطريقة الأكثر أمانًا للاستخدام جمهورية مقدونيا، ولكن يمكن أن يصبح الأمر مملًا جدًا - ضع في اعتبارك دليلًا يحتوي على 150 ملفًا وتريد إرساله إلى سلة المحذوفات. ومع ذلك ، هناك حلول أخرى توفر درجة معينة من الأمان.

الحل غير الآمن تمامًا

يمكنك أيضًا استخدام قدرة shell على تطبيق المعطيات من الأمر السابق على الأمر الحالي. لذا بدلا من مجرد الجري جمهورية مقدونيا في المجلد ، قم أولاً بعمل ملف ls لمعرفة ما إذا كنت تحصل على ما توقعته. ثم قل جمهورية مقدونيا لاستخدام الحجج من ls الأمر عند تشغيله.

على سبيل المثال ، إذا أردت إزالة جميع الملفات التي يبدأ اسمها بـ "MyPic" ، فيمكنك القيام بذلك:

	$ ls MyPic * MyPic1.jpg MyPic2.jpg MyPic3.jpg $ جمهورية مقدونيا! $	

ال !$ جزء من هذا الأمر يخبر القشرة بأن تمسك الوسيطة ( صورتي* ) من الأمر الأخير ، واستخدمه مع الأمر الحالي. في هذا المثال ، هذا يعني ذلك جمهورية مقدونيا سوف تحصل على صورتي* حجة من ls. باستخدام ملف ls الأمر أولاً ، يمكنك أن ترى بالضبط ما هو ملف جمهورية مقدونيا سيحذف الأمر. إذا كان ls الإخراج غير صحيح ، أو يلقي بخطأ ، فسترى ذلك قبل حذف الملفات.

يمكنك أيضًا استخدام ملف صدى صوت الأمر باعتباره "تشغيلًا جافًا" لحذفك. بدلا من مجرد الجري rm MyPic *، جربها صدى rm MyPic * أولاً. سيظهر لك الإخراج ما تم توسيعه جمهورية مقدونيا سيبدو الأمر كما يلي:

	$ echo rm MyPic * rm MyPic1.jpg MyPic2.jpg MyPic3.jpg	

إذا كان كل شيء يبدو على ما يرام ، فاضغط على السهم لأعلى (لاسترداد الأمر الأخير) ، ثم حرك المؤشر إلى اليسار وقم بإزالة الكلمة صدى صوت.

خيار آخر قد تفكر فيه هو عدم استخدامه جمهورية مقدونيا على الاطلاق. بدلاً من ذلك ، استخدم أمر النقل ، م. قم بإنشاء مجلد خاص "للحذف" في مكان ما على نظامك ، واستخدمه م لوضع كل شيء هناك أولاً. بعد ذلك ، يمكنك البحث في دليل "الحذف" عندما يكون لديك الوقت والاستخدام جمهورية مقدونيا فقط داخل هذا الدليل - أو تحقق منه من Finder واستخدم سلة مهملات Finder فقط. لذلك لتكرار مثال MyPic أعلاه ، ما عليك سوى القيام بذلك:

$ mv MyPic * ~ / myuser / dump_dir /

سيؤدي ذلك إلى نقل جميع الملفات التي تبدأ بـ MyPic إلى مجلد dump_dir الخاص بك ، حيث يمكنك النظر إليها لاحقًا في وقت فراغك ، فقط للتأكد من نقل الملفات الصحيحة فقط. بمجرد التأكد من نقل الملفات المناسبة ، يمكنك حذف الملفات.

التعامل مع الرعاية

استخدامي الشخصي لـ جمهورية مقدونيا يعتمد حقًا على الموقف ، لكنني أستخدم مزيجًا من الحلول المذكورة أعلاه بطرق مختلفة. إحدى القواعد الأساسية الخاصة بي هي أنني أحاول عدم الجمع بين ص و F أعلام مع حرف البدل (علامة النجمة). هناك الكثير مما يمكن أن يحدث بشكل خاطئ. إذا اضطررت إلى القيام بشيء من هذا القبيل ، فمن المرجح أن أستخدمه م بدلاً من ذلك ، أو ls للتأكد من أنني أحذف ما أنوي.

سأستخدم أيضًا ملف أنا التبديل عندما أستخدم حرف البدل داخل الدليل ؛ بهذه الطريقة ، يمكنني التأكد من أنني أحذف ما أريد حذفه.

في نهاية اليوم ، الأمر متروك لك حقًا في كيفية حماية نفسك جيدًا عند الاستخدام جمهورية مقدونيا —إنها أداة قوية جدًا (خاصة عند استخدامها مع سودو والخيارات العودية والقسرية) يمكن أن تلحق أضرارًا كبيرة بنظامك بسرعة. لا يوجد شيء يثبت قيمة النسخ الاحتياطي الحالي الجيد بشكل أسرع من النسخ الاحتياطي الخاطئ rm -rf. كما تعلمت Spider-Man الشهيرة: "مع القوة الكبيرة تأتي مسؤولية كبيرة."

ملحوظة: تم تحرير هذه المقالة في الساعة 9:30 صباحًا بتوقيت المحيط الهادئ يوم الجمعة 9 ديسمبر. كانت التعديلات للأسلوب والمحتوى ؛ لم يتم إجراء أي تغييرات على تعليمات Unix...

  • Apr 19, 2023
  • 65
  • 0
instagram story viewer