Na przykład git
zainstalowałem w swoim systemie. Ale nie pamiętam, gdzie go zainstalowałem, więc które polecenie jest odpowiednie, aby się tego dowiedzieć?
Na przykład git
zainstalowałem w swoim systemie. Ale nie pamiętam, gdzie go zainstalowałem, więc które polecenie jest odpowiednie, aby się tego dowiedzieć?
Odpowiedzi:
Jeśli jest na swojej drodze, a następnie można uruchomić albo type git
albo which git
. which
Komenda miał problemy z właściwą ścieżkę (splątanie między środowiskiem i plików kropka). Ponieważ type
możesz uzyskać tylko ścieżkę z -p
argumentem.
Jeśli nie znajduje się na twojej ścieżce, najlepiej poszukać go za pomocą. locate -b git
Znajdziesz coś o nazwie „git”. Będzie to długa lista, więc warto ją zakwalifikować locate -b git | fgrep -w bin
.
locate
bez końca (jest bardzo szybki), ale dla tych, którzy nie są tego świadomi, locate
jest tylko tak aktualny, jak jego najnowsza aktualizacja bazy danych, która jest automatycznie uruchamiana codziennie na moim Ubuntu. Polecenie odświeżania jest sudo updatedb
... locate
Ma również wbudowaną locate -br "^git$"
funkcję wyrażeń regularnych, więc takie polecenia działają: ... -b` oznacza ograniczenie wyszukiwania tylko do nazwy basename ... lub bez -b
, przeszukuje pełną ścieżkę. Również , przeszukuje tylko ścieżki, które skonfigurowałeś do wyszukiwania. Nie ma kontroli tego wiersza poleceń poza filtrami wyrażeń regularnych.
type
jest wbudowaną powłoką, która mówi mi aliasy i tym podobne, i which
jest zewnętrznym programem, który pokazuje mi ścieżkę do pliku wykonywalnego ... chociaż jeśli jest wbudowany, który dostaje się w sposób, w jaki plik wykonywalny nie zostanie wywołany.
which
tym, że nie wie on o wbudowanych powłokach i funkcjach (co jest istotne, gdy zastanawiasz się, co zrobi to polecenie), i używa innych $PATH
w niektórych systemach.
POSIX standardowy sposób to zrobić command -v git
. Wszystkie systemy uniksowe powinny to obsługiwać.
whereis git
i dostajesz ścieżkę do polecenia.
to znaczy, jeśli git jest w tobie zmienna PATH, jeśli nie zainstalowałeś go za pośrednictwem menedżera pakietów, jest bardziej złożony i powinieneś użyć poleceń find
lub locate
.
which
Zachęca również.
Pozostałe odpowiedzi tutaj wydają się być w dużej mierze nastawione na nowoczesnych wersjach Linuksa, więc jeśli zdarzy ci się używać git
na OS, który nie ma locate
, whereis
, which
, lub apropos
(jak Solaris, HPUX, etc), to nie zawsze jest stary gotowości find
.
find / -name git
Jedna starsza wersja wymienionych wyżej systemów może wymagać -print
dostarczenia opcji find
.
find / -name git -print
A jeśli używasz locate
, upewnij się, że biegasz updatedb
okresowo. ( locate.updatedb
w przypadku niektórych instrumentów pochodnych BSD)
type
. :) To zdecydowanie wchodzi w repertuar!
find
najpierw wykonuje pełne przeszukiwanie systemu plików, poczynając od miejsca, w którym zostanie zrootowany. Przejdzie więc find / -name git
cały twój system. Jeśli wiesz, że program jest na twojej ścieżce, zwykle możesz to zrobić IFS=":"; path=$PATH; set $path; for dir in $path; do find $dir -name git; done
, chociaż systemy plików Uniksa są na tyle liberalne, że mogą się one przerwać na różne sposoby, jeśli masz w sobie dziwne znaki PATH
.
PATH
, poprawne (z tymi samymi zastrzeżeniami jak poprzednio) IFS=":"; for dir in $PATH; do find "$dir" -name git; done
. Ponadto, aby powtórzyć, to odpowiedź powinna być stosowana tylko przez ludzi, którzy nie mają dostępu do type
lub which
czy locate
, czyli prawie nikt. @ Odpowiedź Arcege jest poprawna.
Aby uzyskać ścieżkę do zainstalowanego programu, użyj whereis
albo which
. Jeśli zdarzy ci się zapomnieć jego nazwę, możesz użyć apropos
z synonimem lub opisem swojego narzędzia, np . apropos "version control"
Znajdziesz git
. Po tym następuje oczywiście whatis
polecenie krótkiego podsumowania funkcji programu. Nie dotyczy to jednak wszystkich programów i funkcji w systemie. Spróbuj na przykład whatis "the meaning of life, universe and everything"
.
which
polecenie” rzeczywiście :)