غير قادر على unalias rm والسماح لها أن تكون وظيفة في Zsh

StackOverflow https://stackoverflow.com/questions/800657

  •  03-07-2019
  •  | 
  •  

سؤال

أركض دون جدوى في بلدي .zshrc

unalias rm  
rm() { mv $* /tmp/wastebasket }

في بدء التشغيل

/Users/Masi/.zshrc:unalias:34: no such hash table element: rm

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

كيف يمكنك الحصول على إشعار عند بدء التشغيل ؟

هل كانت مفيدة؟

المحلول

الجميع هو حق لك ببساطة لم يكن لديك اسم مستعار.والأهم من ذلك:

لا تفعل هذا.يوما ما سيكون في آخر POSIX الجهاز الذي يتبع معايير POSIX (حذف دون "إعادة التدوير") ، وسوف عرضا حذف شيء و لا التراجع عنه.تعلم rm الانضباط الآن.

نصائح أخرى

أن رسالة الخطأ لأنك تحاول unalias rm و لا يوجد مثل هذا الاسم المستعار.

حيث يمكنك مستعار شيئا أكثر من مرة دون خطأ ، وأود أن تغيير التعليمات البرمجية إلى:

alias rm=x
unalias rm  
rm() { mv $* /tmp/wastebasket }

الذي يضمن أن rm كما هو معمول اسم مستعار قبل محاولة unalias ذلك.

أنا لم تكن مألوفة جدا مع zsh ، ولكن ربما يكون ذلك بسبب rm ليس اسم مستعار ، ولكن هو في الواقع أداة قياسية المقيمين في /بن.

هل يمكن أن مجرد اسم مستعار دون محاولة unalias عليه أولا تجاوز أي السابقة على الاسم المستعار.

يجب عليك فقط محاولة إزالة اسم مستعار موجود.إنشاء اسم مستعار هو unaliased على الفور يبدو لي القبيح.توصيتي هي أن اختبار rm يجري مستعار و unaliasing إذا كان الأمر كذلك.

 case $(type rm) in
     (*alias*) unalias rm;;
 esac

أو استخدام القوة الغاشمة و تجاهل stderr مع

 unalias rm 2>/dev/null
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top