Der which
Befehl gibt nur ausführbare Dateien zurück: Er weiß nichts über Aliase, da es sich um ein externes Programm handelt und es keinen Mechanismus zum Übergeben von Aliasinformationen an einen untergeordneten Prozess gibt.
Wenn Sie den Befehl eingeben type -a cp
, werden alle möglichen Interpretationen in der Reihenfolge ihrer Präferenz angezeigt. Dies schließt jeden Alias ein, da type
es sich um einen bash
internen Befehl handelt.
Es ist wichtig zu wissen, dass ein Alias nicht von einem Unterprozess wie einem Skript oder einem interaktiven Editor interpretiert wird, der die Option zum Ausführen von Systembefehlen bietet.
Wenn Sie cp
eine Funktion erstellen, wird Ihre Version in Skripten ausgeführt, jedoch nicht in anderen Programmen:
cp() { /usr/local/bin/gcp "$@"; }
Wenn Sie möchten, dass Sie cp
überall arbeiten, fügen Sie $HOME/bin
am Anfang Ihrer PATH
Liste hinzu und zeigen $HOME/bin/cp
Sie darauf:
ln -s /usr/local/bin/gcp $HOME/bin/cp
Dies macht einen symbolischen Link, obwohl Sie ihn zu einem etwas effizienteren Hardlink machen können (weglassen -s
), aber dies erfordert normalerweise Root-Berechtigungen ( sudo ln ...
). Das Erstellen einer Funktion und das Hinzufügen zur PATH
Variablen erfolgt in einem der bash
Startskripts mit Benutzerberechtigungen.
PATH
envar.