
Digamos que eu queira criar um alias chamado ss
para o comando sudo -s
. Mas ss
já é um comando existente, então quero criar outro alias chamado sst
para o comando ss
.
Se usar apenas os nomes normais dos comandos, isso não é possível, pois os aliases:
- Não estão definidos de uma forma que respeite a ordem, e
- 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 sst
resulta 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 ss
de 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 ss
executa sudo -s
e sst
executa o comando ss
.