
Suponha que eu tenha um alias no shell bash. Existe um comando simples para imprimir qual comando o alias será executado?
Responder1
O type
builtin é útil para isso. Ele não informará apenas sobre aliases, mas também sobre funções, recursos internos, palavras-chave e comandos externos.
$ type ls
ls is aliased to `ls --color=auto'
$ type rm
rm is /bin/rm
$ type cd
cd is a shell builtin
$ type psgrep
psgrep is a function
psgrep ()
{
ps -ef | {
read -r;
printf '%s\n' "$REPLY";
grep --color=auto "$@"
}
}
type -a cmd
mostrará todos os comandos com esse nome em ordem de precedência, o que é útil para o ls
alias acima, onde o próprio alias chama ls
.
$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls
Isso informa que quando você executar ls
, /bin/ls
será usado e --color=auto
será incluído em sua lista de argumentos, além de qualquer outro que você mesmo adicionar.
Responder2
Basta digitar alias
no prompt do Shell. Deve gerar uma lista de todos os aliases atualmente ativos.
Ou você pode digitar alias [command]
para ver qual é o alias de um alias específico, por exemplo, se quiser descobrir qual é o ls
alias do alias, você pode fazer alias ls
.
Responder3
Eu realmente gosto de Ctrl+ Alt+ Ecomo aprendi comesta resposta. Ele "expande" a linha de comando atualmente digitada, o que significa que executa a expansão do alias (entre outras coisas).
O que isso significa? Ele transforma qualquer alias, que possa estar atualmente escrito na linha de comando, no que o alias representa.
Por exemplo, se eu digitar:
$ ls
e então pressione Ctrl+ Alt+ E, ele se transforma em
$ ls --time-style=locale --color=auto
Responder4
Você poderia usar o which
comando.
Se você definir um alias para ls
as ls -al
e digitar which ls
, verá:
ls: aliased to ls -al
.