سؤال إزالة الملف دون أن يطلب


كيف يمكنني إزالة الملف دون سؤال المستخدم إذا وافق على حذف الملف؟ أنا أكتب السيناريو قذيفة واستخدام الدالة RM ، لكنه يسأل "إزالة الملف العادي؟" وأنا حقا لا أحتاج هذا. شكرا لكم.


74
2017-10-12 19:28


الأصل


rm -f، yes | rm وهكذا ، لكن هذا ينتمي إلى SU.
rm لا تظهر "إزالة ملف عادي؟" مطالبة افتراضيا. يجب أن يكون ذلك مستعارًا لـ rm -i، أو تعريفها كدالة. أنا مندهش من أن الاسم المستعار مرئي داخل النص. هل تقوم بتنفيذ البرنامج النصي (./foo.sh) أو مصادرها (. foo.sh أو source foo.sh)؟ - Keith Thompson


الأجوبة:


ربما لديك rm مستعار ل rm -i لذلك جرب هذا:

/bin/rm -f file.log

لرؤية الأسماء المستعارة الخاصة بك يمكنك تشغيل alias.


89
2017-10-12 19:30



بدلا من ذلك ، استخدم command rm ... أو \rm ... لتخطي الاسم المستعار / الوظيفة - glenn jackman
لقد قيل أن وجود rm مستعار ل rm -i هي فكرة سيئة. ال rm الأمر ، بشكل افتراضي ، يزيل الملف المسمى بصمت. عن طريق التعرج عليه rm -i، يمكنك الحصول على عادة عدم التحقق بعناية قبل الضغط على Enter ، اعتمادًا على المطالبة التفاعلية لتوفير الحماية لك. ثم تكتب rm some-important-fileفي بيئة بدون الاسم المستعار. - Keith Thompson
Keith هذا صحيح جدا ، وأنا فقط شخصيا الاسم المستعار روم إلى جمهورية مقدونيا -v - chown
إذا كانت "rm" دالة (بدلاً من اسم مستعار) ، يجب أن تعمل هذه الإجابة. و باش unset الأمر قد يكون مثيرا للاهتمام - Xen2050


يزيل إشارة القوة كل المطالبات ؛

rm -f {file}


47
2017-10-12 19:30



هذا ما أبحث عنه ، وليس الإجابة المقبولة. - gsamaras


نرجو أن تكون القوة معك - rm -f


26
2017-10-12 19:30



لقد سبق لي أن سمعت جوابًا ساكنًا ، وهذا هو بالضبط نفس الشيء. فقط upvoting من أجل روح الدعابة - rain_


داخل نص shell ، قد ترغب في استخدامه rm -f <filename> ولكن لديك أيضا خيار التخلص من الضمني -i الخيار لبيئتك عن طريق الدخول unalias rm في صدرك (أو ملف التعريف).


5
2017-10-12 20:13





إذا كان لديك الأذونات المطلوبة لحذف الملف ولا تريد أن تتم مطالبتك ، قم بما يلي (-f = force):

rm -f file

إذا لم يكن لديك أذونات للملف ، فستحتاج إلى استخدام:

sudo rm -f file

5
2017-10-12 19:31



"إزالة الملف العادي؟" يشير الفوري إلى أنه ليس مشكلة أذونات. - Keith Thompson


ال yes ﺑﺮﻧﺎﻣﺞ ﻳﺮد ﺑﺸﻜﻞ ﻣﺘﻜﺮر ﻧﻌﻢ ﻋﻠﻰ أي ﻣﻄﺎﻟﺒﺎت. بحيث يمكنك توجيهها إلى التفاعلية rm برنامج للحصول على التأثير المطلوب جدا.

yes | rm <filename>

في المقابل ، إذا كنت ترغب في عدم القيام بشيء تفاعلي ، يمكنك القيام به

yes n | <something interactive>

وهذا سيكرر "n" على تيار الإدخال (بشكل فعال يجيب عن الأسئلة)


2
2017-10-12 20:52



ال yes n الخيار لا يعمل بالنسبة لي. بينما أنا استخدم yes n | rm file.txt، فإنه في الواقع يزيل الملف على الرغم من أن الملف محمي الصحيح. - iammilind


\rm file

مائل \ يتجاوز الأسماء المستعارة.


2
2017-07-28 12:15



"\" هي شرطة مائلة للخلف ، وهذا يعني؟ - Cand3r
نعم ، لاستخدام rm دون الأسماء المستعارة مما يؤدي إلى بادئة الحوارات غير المرغوب فيها مع \. - teknopaul


أعمل حاليًا في نظام ، حيث تلقت shell bash تعريف الأمر rm كدالة في أحد ملفات التكوين العامة:

 rm  () { /bin/rm -i ${1+"$@"}; }

وبالتالي ، لم تنجح أي من الإجابات الواردة أعلاه بشأن الأسماء المستعارة. لمواجهة السلوك المزعج ، أقوم بتعطيل وظيفة rm في ملفي bashrc

 unset -f rm

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

الكتابة /bin/rm أو rm -f كل الوقت غير مريح ، وقد يكون لها عواقب سيئة (في حالة rm -f).


0
2018-02-25 12:18



قد يكون هذا قد حل مشكلتك لكنه لا يجيب على السؤال. - suspectus
لن الإجابة المختارة - الدعوة /bin/rm عمل؟ إذا كان لدي وظيفة في bash ، وملف قابل للتنفيذ يحمل نفس الاسم في الدليل الحالي ، فما عليك سوى إضافة ./ أمام اسم الاتصال الملف - وليس الوظيفة. PS - لقد أضفت تعليقًا على الإجابة المختارة حول وظيفة & unset - Xen2050
نعم فعلا، /bin/rm يعمل. القيام ب unset يزيل الحاجة لكتابة المسار الكامل. - daw


بصرف النظر عن استخدام -f المعلمة ، بدلا من ذلك يمكنك استخدامها find الأمر بدلاً من ذلك ، على سبيل المثال

find -name file.log -delete

0
2018-03-26 13:45





إذا كان لديك rm هو اسم مستعار ل rm -i، ثم استخدام unalias rm.

لا تستخدم rm -f مباشرة إلا إذا كنت تريد حقاً إزالة الكثير من الملفات المحمية ضد الكتابة. يجب أن يكون هناك سبب وجيه جدا للاستخدام -f.

ومع ذلك ، إذا كان لديك الكثير من الملفات المحمية ضد الكتابة ، فقد تفضل ذلك rsync -r --delete empty/ removed_dir/ للحصول على سرعة أكبر.


0
2018-03-29 14:28