Наприклад, я 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справді"