无法取消rm并使其成为Zsh中的函数
我在.zshrc中运行失败无法取消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,并且没有此类别名 由于您可以多次对某个对象进行别名而不会出错,因此我将
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它之前作为别名存在。该错误消息是因为您尝试unaliasrm
而没有这样的别名
由于您可以多次对某个对象进行别名而不会出错,因此我将您的代码更改为:
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
。