Como ver o comando anexado a um alias do bash?

Como ver o comando anexado a um alias do bash?

Suponha que eu tenha um alias no shell bash. Existe um comando simples para imprimir qual comando o alias será executado?

Responder1

O typebuiltin é ú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 cmdmostrará todos os comandos com esse nome em ordem de precedência, o que é útil para o lsalias 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/lsserá usado e --color=autoserá incluído em sua lista de argumentos, além de qualquer outro que você mesmo adicionar.

Responder2

Basta digitar aliasno 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 lsalias 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 whichcomando.

Se você definir um alias para lsas ls -ale digitar which ls, verá:

ls: aliased to ls -al.

informação relacionada