
Digamos que quiero crear un alias llamado ss
para el comando sudo -s
. Pero ss
ya es un comando existente, por lo que quiero crear otro alias llamado sst
para el comando ss
.
Si usa solo los nombres de comando normales, esto no es posible, ya que los alias:
- No estén establecidos de forma que respete el orden, y
- Haga referencia a otros alias, en lugar de solo hacer referencia a comandos
Entonces si intento lo siguiente:
alias sst='ss'
alias ss='sudo -s'
Al ejecutar el comando sst
, se ejecuta sudo -s
, lo cual no es mi intención.
¿Cómo se puede hacer esto?
Respuesta1
Para que lo anterior funcione, debe hacer referencia a la ruta absoluta del comando que desea ejecutar.
Se puede hacer con lo siguiente:
alias sst='/usr/bin/ss'
alias ss='sudo -s
Sin embargo, no siempre se puede estar seguro ss
de que se encuentra en ese lugar, por lo que un enfoque más sólido sería:
alias sst='$(which ss)'
alias ss='sudo -s
Ahora lo anterior funciona como se esperaba, donde ss
se ejecuta sudo -s
y sst
ejecuta el comando ss
.