Como criar aliases com nomes “sobrepostos” aos comandos existentes?

Como criar aliases com nomes “sobrepostos” aos comandos existentes?

Digamos que eu queira criar um alias chamado sspara o comando sudo -s. Mas ssjá é um comando existente, então quero criar outro alias chamado sstpara o comando ss.

Se usar apenas os nomes normais dos comandos, isso não é possível, pois os aliases:

  1. Não estão definidos de uma forma que respeite a ordem, e
  2. Faça referência a outros aliases, em vez de apenas fazer referência a comandos

Então, se eu tentar o seguinte:

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

Executar o comando sstresulta em execução sudo -s, o que não é minha intenção.

Como isso pode ser feito?

Responder1

Para que o procedimento acima funcione, você precisa fazer referência ao caminho absoluto do comando que deseja executar.

Isso pode ser feito com o seguinte:

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

No entanto, nem sempre é possível ter certeza ssde que estamos naquele local; portanto, uma abordagem mais sólida seria:

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

Agora o acima funciona conforme o esperado, onde ssexecuta sudo -se sstexecuta o comando ss.

informação relacionada