我在.zshrc
中运行失败unalias rm
rm() { mv $* /tmp/wastebasket }
我参加了初创公司
/Users/Masi/.zshrc:unalias:34: no such hash table element: rm
我注意到哈希表问题是Ubuntu中针对run-help的一个未解决的错误。
我不确定该错误是否适用于Mac和rm
命令。
如何在启动时关闭通知?
答案 0 :(得分:15)
其他人都是对的,你根本就没有别名。更重要的是:
不要这样做。有一天你会在另一台符合POSIX标准的POSIX机器上(没有“回收”而删除),你会随便删除一些东西而无法撤消它。现在就学习rm学科。
答案 1 :(得分:1)
该错误消息是因为您尝试取消联合rm
并且没有此类别名。
由于您可以在没有错误的情况下多次使用别名,我会将您的代码更改为:
alias rm=x
unalias rm
rm() { mv $* /tmp/wastebasket }
这可以保证rm
在您尝试取消它之前作为别名存在。
答案 2 :(得分:1)
我对zsh不太熟悉,但也许是因为rm不是别名,而是实际上是驻留在/ bin中的标准实用程序。
您可以在不尝试首先对其进行unalias的情况下对其进行别名,从而覆盖以前的任何别名。
答案 3 :(得分:1)
您应该只尝试删除存在的别名。 立即创建一个没有混淆的别名让我觉得难看。 我的建议是测试rm是否为别名,如果是,则进行unaliasing。
case $(type rm) in
(*alias*) unalias rm;;
esac
或者使用暴力并忽略stderr
unalias rm 2>/dev/null