Domanda

Corro senza successo nel mio .zshrc

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

Ottengo all'avvio

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

Ho notato che il problema della tabella hash è stato un bug irrisolto in Ubuntu per run-help. Non sono sicuro che il bug si applichi anche al Mac e al comando rm .

Come puoi disattivare la notifica all'avvio?

È stato utile?

Soluzione

Tutti gli altri hanno ragione sul fatto che semplicemente non avevi un alias. Ancora più importante:

NON farlo. Un giorno ti troverai su un altro computer POSIX che segue gli standard POSIX (eliminando senza "riciclaggio") e eliminerai casualmente qualcosa e non avrai modo di annullarlo. Impara ora la disciplina rm.

Altri suggerimenti

Questo messaggio di errore è perché stai cercando di unire rm e non esiste un tale alias.

Dal momento che puoi alias qualcosa più di una volta senza errori, cambierei il tuo codice in:

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

Ciò garantisce che rm esiste come alias prima di provare a uniarlo.

Non ho molta familiarità con zsh, ma forse è perché rm non è un alias, ma in realtà è un'utilità standard residente in / bin.

Potresti semplicemente alias senza tentare di uniarlo prima, ignorando qualsiasi alias precedente.

Dovresti solo provare a rimuovere un alias esistente. Creare un alias che non ha eguali subito mi sembra brutto. La mia raccomandazione è di verificare che rm sia un alias e unaliasing in tal caso.

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

Oppure usa la forza bruta e ignora stderr con

 unalias rm 2>/dev/null
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top