Jestem (jakoś) w stanie uruchomić skrypt:
$ assemble.sh file
... [output]
Ale which
nie mogę tego znaleźć:
$ which assemble.sh
which: no assemble.sh in (/s/std/bin:/usr/afsws/bin:/opt/SUNWspro/bin:/usr/ccs/bin:/usr/ucb:/bin:/usr/bin:/usr/stat/bin:/usr/X11R6/bin:.
- Jak to jest możliwe?
- Jak mogę znaleźć gdzie jest ten plik?
Używam bash.
assemble.sh
w twoim bieżącym katalogu?alias
?Odpowiedzi:
Użyj tego polecenia:
type assemble.sh
Działa w różnych powłokach i pokazuje tylko pierwszy wynik.
źródło
type assemble.sh
, który jest przenośny (i pokazuje tylko pierwsze dopasowanie, podczas gdytype -a
jest konstrukcją ksh / bash, która pokazuje wszystkie dopasowania).Lub podziel ścieżkę i użyj jej w znalezieniu - pierwszym rozwiązaniem powinno być rozwiązanie
type
jest oczywiście łatwiejsze.źródło
find
Być może używasz bash, ale składnia danych
which
wyjściowych pokazuje, że używasz staregowhich
napisanego w csh. PATH pokazuje się w nawiasach, a katalogi w PATH mają wpisy podobne/opt/SUNWspro/bin
i/usr/ccs/bin
które mają sens tylko w Solarisie. To spójne: Solaris użył cshwhich
.Oto moje przypuszczenie: masz jedną ŚCIEŻKĘ na bash, a drugą na csh. Może to być problem z systemem. O ile pamiętam, Solaris przechowuje pliki / etc / profile i / etc / cshrc dla ustawienia PATH w całym systemie. Te dwa pliki inicjujące mogą ustawiać różne zmienne PATH dla różnych powłok. Wykonaj „echo $ PATH” pod bash i sprawdź, czy zgadza się z tym, co
which
polecenie wypisuje jako ciąg PATH.źródło
Informacje
źródło
ASSEMBLE=$(PATH=/usr/bin:/usr/local/opt/coreutils/libexec/gnubin command -v assemble.sh)
Możesz użyć,
locate assemble.sh
aby znaleźć lokalizację pliku.źródło
assemble.sh
, co nie ma tutaj znaczenia.locate
podałby mu lokalizację tego, którego chce.assemble.sh
nie jest tak powszechną nazwą pliku, więc prawdopodobnie łatwo go znajdzie (czego żąda OP).updatedb
wcześniejlocate
pokazywać wyników?updatedb
jest uruchamiany codziennie jako zadanie crona, ale tak, może być konieczne wymuszenie go, jeśli plik jest najnowszy.