La which
commande ne renvoie que les exécutables: elle ne sait rien des alias, car il s'agit d'un programme externe, et il n'y a pas de mécanisme pour transmettre des informations d'alias à un processus enfant.
Si vous entrez la commande, type -a cp
vous verrez toutes les interprétations possibles, par ordre de préférence. Cela inclut tout alias, car il type
s'agit d'une bash
commande interne.
Il est important de réaliser qu'un alias ne sera pas interprété par un sous-processus, tel qu'un script ou un éditeur interactif qui a une option pour exécuter des commandes système.
Si vous créez cp
une fonction, votre version s'exécutera dans des scripts, mais pas à partir d'autres programmes:
cp() { /usr/local/bin/gcp "$@"; }
Si vous voulez que vous cp
travailliez partout, ajoutez $HOME/bin
en tête de votre PATH
liste et $HOME/bin/cp
pointez-la vers elle:
ln -s /usr/local/bin/gcp $HOME/bin/cp
Cela crée un lien symbolique, bien que vous puissiez en faire un lien dur légèrement plus efficace (omis -s
), mais cela nécessite normalement des autorisations root ( sudo ln ...
). La création d'une fonction et son ajout à la PATH
variable se feront dans l'un des bash
scripts de démarrage, avec des autorisations utilisateur.
PATH
envar.