How do I delete/remove a shell function?
I have done this:
$ z() { echo 'hello world'; }
How do I get rid of it?
Solution 1:
unset -f z
Will unset the function named z. A couple people have answered with:
unset z
but if you have a function and a variable named z only the variable will be unset, not the function.
Solution 2:
In Zsh:
unfunction z
That's another (arguably better) name for unhash -f z
or unset -f z
and is consistent with the rest of the family of:
unset
unhash
unalias
unlimit
unsetopt
When in doubt with such things, type un<tab>
to see the complete list.
(Slightly related: It's also nice to have functions/aliases like realiases
, refunctions
, resetopts
, reenv
, etc to "re-source
" respective files, if you've separated/grouped them as such.)