无法取消rm并使其成为Zsh中的函数

无法取消rm并使其成为Zsh中的函数,zsh,Zsh,我在.zshrc中运行失败 unalias rm rm() { mv $* /tmp/wastebasket } 我在创业公司工作 /Users/Masi/.zshrc:unalias:34: no such hash table element: rm 我注意到哈希表问题一直是运行帮助中未解决的错误。 我不确定这个错误是否也适用于Mac和rm-命令 如何在启动时取消通知?该错误消息是因为您尝试使用unaliasrm,并且没有此类别名 由于您可以多次对某个对象进行别名而不会出错,因此我将

我在.zshrc中运行失败

unalias rm  
rm() { mv $* /tmp/wastebasket }
我在创业公司工作

/Users/Masi/.zshrc:unalias:34: no such hash table element: rm
我注意到哈希表问题一直是运行帮助中未解决的错误。 我不确定这个错误是否也适用于Mac和
rm
-命令


如何在启动时取消通知?

该错误消息是因为您尝试使用unalias
rm
,并且没有此类别名

由于您可以多次对某个对象进行别名而不会出错,因此我将您的代码更改为:

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

这保证了
rm
在您尝试unalias它之前作为别名存在。

该错误消息是因为您尝试unalias
rm
而没有这样的别名

由于您可以多次对某个对象进行别名而不会出错,因此我将您的代码更改为:

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

这保证了
rm
在您尝试使用它之前作为别名存在。

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


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

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


您可以在不首先尝试取消别名的情况下为其添加别名,从而覆盖以前的任何别名。

其他人都认为您没有别名是正确的。更重要的是:


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

其他人都认为您没有别名是对的。更重要的是:


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

您只应尝试删除已存在的别名。 创建一个没有关联的别名让我觉得很难看。 我的建议是测试rm是否为别名,如果是,则测试其是否为无关联

 case $(type rm) in
     (*alias*) unalias rm;;
 esac
或者使用蛮力并忽略带有

 unalias rm 2>/dev/null

您只应尝试删除已存在的别名。 创建一个没有关联的别名让我觉得很难看。 我的建议是测试rm是否为别名,如果是,则测试其是否为无关联

 case $(type rm) in
     (*alias*) unalias rm;;
 esac
或者使用蛮力并忽略带有

 unalias rm 2>/dev/null

我同意。学会明智地使用rm,不要依赖于任何你能为自己设置的安全网。@Matt:我会按照你的提示去做。谢谢你指出这一点!作为后续行动,如果您对此感到担忧,您可以养成运行
rm-i
的习惯。同样,出于同样的原因,不要将
rm
别名为
rm-i
(您最终将在没有别名的情况下运行
rm
),我同意。学会明智地使用rm,不要依赖于任何你能为自己设置的安全网。@Matt:我会按照你的提示去做。谢谢你指出这一点!作为后续行动,如果您对此感到担忧,您可以养成运行
rm-i
的习惯。同样,出于同样的原因,不要将
rm
别名为
rm-i
(您最终将运行
rm
,而不使用别名)。将
mv--“$@”
改为
$*
,它也适用于各种时髦的文件名而不是
$*
,它也适用于各种时髦的文件名。将
mv--“$@”
改为
$*
,它也适用于各种时髦的文件名。如果别名正在更改行为,请使用不同的名称:例如
thrash
clean
。将
mv--“$@”
而不是
$*
,它也适用于各种时髦的文件名。如果别名正在更改行为,请使用不同的名称:例如
thrash
clean