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ć?
terminal
system-calls
Anders Lind
źródło
źródło
which
polecenie” rzeczywiście :)Odpowiedzi:
Jeśli jest na swojej drodze, a następnie można uruchomić albo
type git
albowhich 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
.źródło
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 jestsudo 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
sięwhich
.which
łatwo się myli .type
jest wbudowaną powłoką, która mówi mi aliasy i tym podobne, iwhich
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ć.źródło
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
lublocate
.źródło
which
Zachęca również.type
, raczej niewhich
. Zobacz Jak korzystaćwhich
z polecenia aliasu?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 malocate
,whereis
,which
, lubapropos
(jak Solaris, HPUX, etc), to nie zawsze jest stary gotowościfind
.Jedna starsza wersja wymienionych wyżej systemów może wymagać
-print
dostarczenia opcjifind
.A jeśli używasz
locate
, upewnij się, że biegaszupdatedb
okresowo. (locate.updatedb
w przypadku niektórych instrumentów pochodnych BSD)źródło
type
; jest niezawodny i przenośny (z wyjątkiem systemów 30-letnich).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ęcfind / -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 znakiPATH
.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 dotype
lubwhich
czylocate
, czyli prawie nikt. @ Odpowiedź Arcege jest poprawna.Aby uzyskać ścieżkę do zainstalowanego programu, użyj
whereis
albowhich
. Jeśli zdarzy ci się zapomnieć jego nazwę, możesz użyćapropos
z synonimem lub opisem swojego narzędzia, np .apropos "version control"
Znajdzieszgit
. Po tym następuje oczywiściewhatis
polecenie krótkiego podsumowania funkcji programu. Nie dotyczy to jednak wszystkich programów i funkcji w systemie. Spróbuj na przykładwhatis "the meaning of life, universe and everything"
.źródło