Il whichcomando restituisce solo file eseguibili: non sa nulla sugli alias, poiché è un programma esterno e non esiste alcun meccanismo per passare le informazioni sugli alias a un processo figlio.
Se si immette il comando type -a cp, verranno visualizzate tutte le interpretazioni possibili, in ordine di preferenza. Ciò include qualsiasi alias, poiché typeè un bashcomando interno.
È importante rendersi conto che un alias non verrà interpretato da un processo secondario, come uno script o un editor interattivo che ha un'opzione per eseguire comandi di sistema.
Se si crea cpuna funzione, la versione verrà eseguita in script, anche se non da altri programmi:
cp() { /usr/local/bin/gcp "$@"; }
Se vuoi cpche lavori ovunque, aggiungi $HOME/binin testa al tuo PATHelenco e $HOME/bin/cppunta ad esso:
ln -s /usr/local/bin/gcp $HOME/bin/cp
Questo crea un collegamento simbolico, sebbene sia possibile renderlo un collegamento reale leggermente più efficiente (omettere -s), ma ciò richiederà normalmente i permessi di root ( sudo ln ...). La creazione di una funzione e l'aggiunta alla PATHvariabile verranno eseguite in uno degli bashscript di avvio, con autorizzazioni utente.
PATHenvar.