Наприклад, я git
встановив у своїй системі. Але я не пам'ятаю, де я його встановив, тож яка команда підходить, щоб дізнатися це?
Наприклад, я git
встановив у своїй системі. Але я не пам'ятаю, де я його встановив, тож яка команда підходить, щоб дізнатися це?
Відповіді:
Якщо це на вашому шляху, ви можете запустити 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
полягають у тому, що він не знає про вбудовані оболонки та функції (що актуально, коли вам цікаво, що вводить команда), і в $PATH
деяких системах використовується інше .
Стандарт POSIX спосіб зробити це command -v git
. Усі UNIX-подібні системи повинні підтримувати це.
whereis git
і ви отримуєте шлях до команди.
це просто, якщо git є у вас змінною PATH, якщо ви встановили її не через ваш менеджер пакунків, це складніше і вам слід скористатися командами find
або locate
.
which
також рекомендується.
Інші відповіді тут , здається, в значній мірі орієнтована на сучасних версіях Linux, так що якщо ви вирішили використовувати git
в ОС , яка не має locate
, whereis
, which
або apropos
(як Solaris, HP - UX, і т.д.), то завжди є старий резерв find
.
find / -name git
В одній із старих версій перерахованих вище систем вам може знадобитися -print
опція, що постачається find
.
find / -name git -print
І якщо ви все-таки використовуєте 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
, тобто, майже ніхто. @ Арседж відповідь правильна.
Щоб отримати шлях до встановленої програми, яку ви використовуєте whereis
або which
. Якщо ви забули його ім'я, ви можете використовувати apropos
синонім або опис вашої утиліти, наприклад apropos "version control"
, знайдете git
. Після цього, звичайно, є whatis
команда коротко узагальнити функцію програми. Однак це не стосується всіх програм та функцій вашої системи. Спробуйте, наприклад whatis "the meaning of life, universe and everything"
.
which
справді"