O comando which
retorna apenas executáveis: ele não sabe nada sobre aliases, já que é um programa externo e não há mecanismo para passar informações de alias para um processo filho.
Se você digitar o comando type -a cp
, verá todas as interpretações possíveis, em ordem de preferência. Isso inclui qualquer alias, pois type
é um comando bash
internal.
É importante perceber que um alias não será interpretado por um subprocesso, como um script ou um editor interativo que tenha a opção de executar comandos do sistema.
Se você criar a função cp
, sua versão será executada em scripts, mas não em outros programas:
cp() { /usr/local/bin/gcp "$@"; }
Se você quiser que seu cp
funcione em todos os lugares, adicione $HOME/bin
na cabeça da lista PATH
e aponte $HOME/bin/cp
para apontar para ele:
ln -s /usr/local/bin/gcp $HOME/bin/cp
Isso cria um link simbólico, embora você possa torná-lo um link físico um pouco mais eficiente (omit -s
), mas isso normalmente precisará de permissões de root ( sudo ln ...
). Criar uma função e adicionar à variável PATH
será feito em um dos scripts de inicialização bash
, com permissões de usuário.