Il which
comando 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 bash
comando 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 cp
una funzione, la versione verrà eseguita in script, anche se non da altri programmi:
cp() { /usr/local/bin/gcp "$@"; }
Se vuoi cp
che lavori ovunque, aggiungi $HOME/bin
in testa al tuo PATH
elenco e $HOME/bin/cp
punta 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 PATH
variabile verranno eseguite in uno degli bash
script di avvio, con autorizzazioni utente.
PATH
envar.