Por que a configuração de um alias substitui um link executável?

Por que a configuração de um alias substitui um link executável?

Estou curioso, por que adicionar uma entrada faz .bashrccom que um link seja substituído? Por exemplo, em uma máquina de teste, instalei o Java apt-get install openjdk-7-jree depois brinquei .bashrcadicionando alias java="echo Java!". Quando executei javao bash, descobri que ele ecoou Java!em vez de executar o java, localizado em /usr/bin/java. Também descobri que isso acontece com ps, she screen. Então, por que isso está acontecendo?

Responder1

Porque é assim que o Bash funciona. Está no manual - Os aliases têm uma prioridade mais alta ao tentar combinar a entrada com um comando.

O uso comum de aliases é substituir comandos; por exemplo:

alias java="\java -Xmx=1G"

O alias acima aumenta a quantidade máxima padrão de memória disponível para um processo java de 256MiB para 1GiB. A única maneira de isso ter algum efeito útil, entretanto, é se, quando eu digitar java, ele executar o alias e não o comando.

informação relacionada