Question

Je cours sans succès dans mon .zshrc

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

Je reçois au démarrage

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

J'ai remarqué que le problème de la table de hachage était un bogue non résolu dans Ubuntu pour l'aide à l'exécution. Je ne sais pas si le bogue s'applique à Mac et à la rm -command aussi.

Comment désactiver la notification au démarrage?

Était-ce utile?

La solution

Tout le monde a raison de dire que vous n'aviez tout simplement pas d'alias. Plus important encore:

NE PAS faire ceci. Un jour, vous vous retrouverez sur une autre machine POSIX qui respecte les normes POSIX (suppression sans "recyclage"), vous effacez quelque chose par hasard et vous n'aurez aucun moyen de l'annuler. Apprenez la discipline maintenant.

Autres conseils

Ce message d'erreur vient du fait que vous essayez d'utiliser unalias rm et qu'il n'existe aucun alias de ce type.

Étant donné que vous pouvez aliaser quelque chose plusieurs fois sans erreur, je modifierais votre code en:

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

Cela garantit que rm existe sous un alias avant d'essayer de le désaliasiser.

Je ne connais pas très bien zsh, mais c'est peut-être parce que rm n'est pas un alias, mais plutôt un utilitaire standard résidant dans / bin.

Vous pouvez simplement l'aliaser sans essayer de le désaliniser au préalable, en remplaçant tout alias précédent.

Vous devez uniquement essayer de supprimer un alias existant. Créer un alias sans alias tout de suite me semble moche. Ma recommandation est de tester si rm est un alias et unaliasing le cas échéant.

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

Ou utilisez la force brute et ignorez stderr avec

 unalias rm 2>/dev/null
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top