Szukałem sposobu na wyliczenie wszystkich kopii pliku wykonywalnego, które są zasłonięte przez pierwszą w moim PATH
. Najlepsze co mogłem wymyślić jest funkcją:Jak mogę znaleźć wszystkie kopie nazwy pliku wykonywalnego w mojej zmiennej PATH?
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
To dostaje mi co chcę (choć nie obsługuje aliasów/bash funkcje type
robi). Byłem ciekawy, czy jest bardziej zbudowany?
Dzięki. Dokładnie to, czego szukałem. Chyba powinienem RTFM nieco więcej. – weaver
co to jest za obudowę? Nie bash w wersji 4.2.45 (1) -release: 'type który' ->' który jest/usr/bin/which'. Dla bash: 'type -a python' –
good point @glennjackman faktycznie' which' nie jest wbudowanym poleceniem, ale jak wiesz, zwykle jest dostarczane wraz z bash. W każdym razie, 'type -a' dostarcza mi innego wyjścia, niż się spodziewam, pokazując mi tylko występowanie pliku wykonywalnego istniejącego w różnych ścieżkach. Wiesz dlaczego? –