Estou curioso, por que adicionar uma entrada faz .bashrc
com que um link seja substituído? Por exemplo, em uma máquina de teste, instalei o Java apt-get install openjdk-7-jre
e depois brinquei .bashrc
adicionando alias java="echo Java!"
. Quando executei java
o 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
, sh
e 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.