Ich war auf der Suche nach einer Möglichkeit, alle Kopien einer ausführbaren Datei, die von der ersten in meinem PATH
beschattet sind, zu nummerieren. Das Beste, was ich tun konnte, ist eine Funktion:Wie kann ich alle Kopien eines ausführbaren Namens in meinem PATH finden?
find_all_exec() {
for i in ${PATH//:/ }; do
find "$i/$1" 2> /dev/null
done
}
$ find_all_exec python
/usr/local/bin/python
/usr/bin/python
Das bekommt mir, was ich will (obwohl es behandelt nicht bash Aliase/Funktionen wie type
der Fall ist). Ich war neugierig, ob es mehr eingebaut ist?
Dank. Genau das, was ich gesucht habe. Ich denke, ich sollte RTFM ein bisschen mehr. – weaver
In welche Shell ist das eingebaut? Nicht bash version 4.2.45 (1) -release: 'type which' ->' was ist/usr/bin/which'. Für bash: 'type -a python' –
good point @glennjackman eigentlich' which' ist kein eingebauter Befehl, aber wie Sie wissen, wird es normalerweise zusammen mit bash bereitgestellt. Wie auch immer, 'type -a' liefert mir eine andere Ausgabe von dem, was ich erwarte, und zeigt mir nur ein Vorkommen einer ausführbaren Datei, die in den verschiedenen Pfaden existiert. Weißt du, warum? –