如何创建与现有命令“重叠”名称的别名?

如何创建与现有命令“重叠”名称的别名?

假设我想ss为命令创建一个名为 的别名sudo -s。但是ss已经是一个现有命令,所以我想sst为命令创建另一个名为 的别名ss

如果仅使用普通命令名称,这是不可能的,因为别名:

  1. 没有按照顺序设置,并且
  2. 引用其他别名,而不是仅引用命令

因此,如果我尝试以下操作:

alias sst='ss'
alias ss='sudo -s'

运行命令sst导致运行sudo -s,这不是我的意图。

如何才能做到这一点?

答案1

为了使上述操作有效,您需要引用要运行的命令的绝对路径。

可以通过以下方式完成:

alias sst='/usr/bin/ss'
alias ss='sudo -s

然而,人们不能总是确定ss它是否在那个位置,所以更可靠的方法是:

alias sst='$(which ss)'
alias ss='sudo -s

现在,上述操作按预期工作,其中ss运行sudo -ssst运行命令ss

相关内容