Як знайти шлях до виконуваного файлу в OSX


46

Чи є команда, яку я можу використати, щоб легко знайти шлях до виконуваного файлу? Я шукаю ідентифікацію на своїй локальній машині - щось на кшталт pwd?

pwd identify
=> /usr/local/bin/identify

Відповіді:


60

which буде шукати ваш шлях за поданими вами аргументами, він знайдеться майже на будь-якому BSD або SysV UNIX

moriarty:~ dave$ which bash true false
/bin/bash
/usr/bin/true
/usr/bin/false

1
whichКоманда , хоча буде працювати , як правило , не є правильним інструментом для використання , щоб зробити цей вид роботи. Дивіться це питання U&L Q&A: unix.stackexchange.com/questions/85249/…
slm

6
У OSX whichне дає жодних результатів для користувацького сценарію (тобто в $PATH). typeробить.
wisbucky

17

Якщо ви використовуєте bash вбудований type, він покаже вам всі (на шляху) команди для команди:

$ type -a ls
ls is aliased to `ls --color=always'
ls is /bin/ls

$ type -a printf
printf is a shell builtin
printf is /usr/bin/printf

$ type -a touch
touch is /usr/bin/touch
touch is /bin/touch

Якщо команда є функцією, вона перелічить визначення функції:

$ type -a somefunc
somefunc is a function
somefunc ()
{
    echo "hello, world"
}

Ці приклади представлені з системи Ubuntu, але результати будуть аналогічні для OS X.


4
У OSX whichне відображається шлях для користувацького сценарію (тобто в $PATH). typeробить.
wisbucky

3

спробуйте "знайти ідентифікувати"


5
Це працює, коли "котрий" не буде, тому що виконуваний файл не є у вашому поточному PATH, але також має тенденцію виписувати багато речей, які ви не хочете. Фільтр першого контуру: "знайти команду | grep bin". Спершу скористайтеся "який".
dmckee

0

Це залежить від того, що ви шукаєте. Більшість утиліт залежить від змінної шляху. Однак, якщо ви хочете, що ви шукаєте, є ваші шанси на шляху, вам дійсно не потрібно знати, де він знаходиться, якщо не існує декількох копій одного і того ж виконуваного файлу.

Це не стосується більшості речей, що працюють в OSX, хоча вони не запускаються як звичайні бінарні файли Linux / Unix. Ось декілька методів пошуку речей, які відсутні у вашій заяві про шлях.

знайти:

sudo find / -name <FILE>

Тут ви знайдете все, що існує у файловій системі, яку ви даєте в якості першого аргументу. Потрібно запустити як root для пошуку приватних каталогів. Він також підтримує підстановку, якщо ви не повністю впевнені в назві.

Термінал:

Якщо у вас є файл у пошуку, ви можете відкрити вікно терміналу і запустити файл у нього. Термінал з потім відображає повний шлях до файлу.

Прожектор:

Досить пояснюючи себе. Ви даруєте цикли процесорів, щоб він міг зберігати індекс ваших даних

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.