O whichcomando retorna apenas executáveis: não sabe nada sobre aliases, pois é 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, já que typeé um bashcomando interno.
É importante perceber que um alias não será interpretado por um subprocesso, como um script ou um editor interativo que tenha uma opção para executar comandos do sistema.
Se você criar cpuma função, sua versão será executada em scripts, embora não de outros programas:
cp() { /usr/local/bin/gcp "$@"; }
Se você deseja que você cptrabalhe em qualquer lugar, adicione $HOME/binno início da sua PATHlista e $HOME/bin/cpaponte para ela:
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 (omitir -s), mas isso normalmente precisará de permissões de root ( sudo ln ...). A criação de uma função e a adição à PATHvariável serão feitas em um dos bashscripts de inicialização, com permissões de usuário.
PATHenvar.