Como descobrir quais arquivos definiram “alias” es?

1

Quando executo o comando alias , vejo um alias que não sei onde ele foi definido (ou seja, não consigo encontrar o arquivo que contém a definição desse alias). Verifiquei /etc/profile , ~/.bashrc , ~/.profile , ~/.bash_profile , ~/.bash_login , /etc/bash.bashrc e alguns outros, mas sem sucesso.

Existe uma maneira de descobrir de quais arquivos o comando alias obtém suas informações? Quero dizer, como funciona o comando alias ? Ele lê alguns arquivos predeterminados procurando definições de alias?

    
por LoMaPh 01.11.2017 / 01:32

1 resposta

2

Ao longo das linhas de a resposta similar de Stéphane , aqui está uma maneira de executar um shell bash interativo no modo de rastreamento ( executando o comando único exit ), canalizado para um grep que mostra apenas os comandos source e alias ; o comando source imediatamente acima do alias de interesse deve ser o arquivo que contém o comando alias.

bash -ix -c exit 2>&1 | grep -E 'source | \. |alias '

Uma corrida instrumentada:

$ tail -1 ~/.bashrc
[ -f /tmp/a.bashrc ] && source /tmp/a.bashrc
$ cat /tmp/a.bashrc
[ -f /tmp/b.bashrc ] && . /tmp/b.bashrc
$ cat /tmp/b.bashrc
alias answer='echo 42'

$ bash -ix -c exit 2>&1 | grep -E 'source | \. |alias '
+ alias 'ls=ls --color=auto'
+ source /tmp/a.bashrc
++ . /tmp/b.bashrc
+++ alias 'answer=echo 42'
    
por 01.11.2017 / 01:51