Например, я git
установил в моей системе. Но я не помню, где я его установил, так какая команда подходит, чтобы это выяснить?
terminal
system-calls
Андерс Линд
источник
источник
which
действительно " команда" :)Ответы:
Если это на вашем пути, то вы можете запустить либо
type git
илиwhich git
. Уwhich
команды возникли проблемы с получением правильного пути (путаница между окружением и точечными файлами). Ведьtype
вы можете получить только путь с-p
аргументом.Если он не находится на вашем пути, то лучше всего поискать его.
locate -b git
Он найдет что-нибудь с именем 'git'. Это будет длинный список, так что, возможно, было бы неплохо его квалифицироватьlocate -b git | fgrep -w bin
.источник
locate
бесконечно (это очень быстро), но для тех, кто не знает об этом,locate
он настолько же актуален, как и его самое последнее обновление базы данных, которое автоматически запускается ежедневно на моей Ubuntu. Обновления командаsudo updatedb
... Такжеlocate
имеет встроенные возможности регулярных выражений, так что команды , как это работает:locate -br "^git$"
... -b` означает ограничить поиск , чтобы только базовое имя ... или без-b
, она ищет полный путь .. Также , он ищет только те пути, которые вы настроили для поиска. В командной строке это не контролируется, кроме ваших фильтров регулярных выражений.type
вwhich
.which
легко запутывается .type
встроенная оболочка, которая сообщает мне псевдонимы и тому подобное, иwhich
внешняя программа, которая показывает мне путь к исполняемому файлу ... хотя, если есть встроенная функция, которая попадает в так, что исполняемый файл не будет вызван.which
, что он не знает о встроенных функциях и функциях оболочки (что важно, когда вам интересно, что будет делать ввод команды), и в$PATH
некоторых системах он использует другое .Стандарт POSIX способ сделать это
command -v git
. Все UNIX-подобные системы должны поддерживать это.источник
whereis git
и вы получите путь к команде.это просто, если git находится в переменной PATH, если вы установили ее не через менеджер пакетов, она более сложна, и вам следует использовать команды
find
orlocate
.источник
which
также рекомендуется.type
, скорее нетwhich
. См. Как использоватьwhich
команду с псевдонимом?Другие ответы здесь , кажется, в значительной степени ориентирована на современных версиях Linux, так что если вы решили использовать
git
в ОС , которая не имеетlocate
,whereis
,which
илиapropos
(как Solaris, HP - UX, и т.д.), то всегда есть старый резервfind
.Для некоторых более старых версий систем, перечисленных выше, вам может потребоваться дополнительная
-print
опцияfind
.И если вы используете
locate
, убедитесь, что вы запускаетеupdatedb
периодически. (locate.updatedb
на некоторых производных BSD)источник
type
; это надежно и портативно (кроме 30-летних систем).type
. :) Это определенно происходит в репертуаре!find
поиск файловой системы в первую очередь начинается с того места, где вы ее кореньете. Такfind / -name git
пройдёт вся ваша система. Если вы знаете, что программа находится на вашем пути, вы обычно можете это сделатьIFS=":"; path=$PATH; set $path; for dir in $path; do find $dir -name git; done
, хотя файловые системы Unix достаточно разрешительны, и это может привести к поломке различными способами, если в вашем распоряжении есть странные символыPATH
.PATH
, правильная вещь (с теми же предостережениями, что и раньше)IFS=":"; for dir in $PATH; do find "$dir" -name git; done
. Кроме того, повторюсь, этот ответ должен использоваться только людьми, которые не имеют доступа кtype
или,which
илиlocate
, почти, никому. @ Arcege ответ правильный.Чтобы получить путь к установленной программе, вы либо используете,
whereis
либоwhich
. Если вы случайно забыли его имя, вы можете использоватьapropos
синоним или описание вашей утилиты, напримерapropos "version control"
, найдетеgit
. После этого, конечно,whatis
команда кратко суммировать функции программы. Это, однако, не распространяется на все программы и функции в вашей системе. Попробуйте, напримерwhatis "the meaning of life, universe and everything"
.источник