1

我在 .zshrc 中运行失败

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

我在启动时

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

我注意到哈希表问题一直是Ubuntu中用于运行帮助的一个未解决的错误。我不确定该错误是否也适用于 Mac 和rm-command。

如何在启动时关闭通知?

4

4 回答 4

16

其他人都是对的,您根本没有别名。更重要的是:

要这样做。有一天,您将在另一台遵循 POSIX 标准的 POSIX 机器上(删除而不“回收”),您会随意删除某些内容并且无法撤消它。现在学习 rm 纪律。

于 2009-04-29T02:40:37.340 回答
2

您应该只尝试删除存在的别名。创建一个没有别名的别名让我觉得很难看。我的建议是测试 rm 是否是别名,如果是,则取消别名。

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

或使用蛮力并忽略 stderr

 unalias rm 2>/dev/null
于 2011-04-14T08:16:11.643 回答
1

该错误消息是因为您尝试取消rm别名并且没有这样的别名。

由于您可以多次使用别名而不会出现错误,因此我会将您的代码更改为:

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

这保证rm在您尝试取消别名之前作为别名存在。

于 2009-04-29T02:35:00.570 回答
1

我对 zsh 不是很熟悉,但可能是因为 rm 不是别名,而实际上是驻留在 /bin 中的标准实用程序。

您可以直接给它取别名,而不必先尝试取消它的别名,从而覆盖任何以前的别名。

于 2009-04-29T02:35:44.920 回答