Відповіді:
which
буде шукати ваш шлях за поданими вами аргументами, він знайдеться майже на будь-якому BSD або SysV UNIX
moriarty:~ dave$ which bash true false
/bin/bash
/usr/bin/true
/usr/bin/false
which
не дає жодних результатів для користувацького сценарію (тобто в $PATH
). type
робить.
Якщо ви використовуєте 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.
which
не відображається шлях для користувацького сценарію (тобто в $PATH
). type
робить.
спробуйте "знайти ідентифікувати"
Це залежить від того, що ви шукаєте. Більшість утиліт залежить від змінної шляху. Однак, якщо ви хочете, що ви шукаєте, є ваші шанси на шляху, вам дійсно не потрібно знати, де він знаходиться, якщо не існує декількох копій одного і того ж виконуваного файлу.
Це не стосується більшості речей, що працюють в OSX, хоча вони не запускаються як звичайні бінарні файли Linux / Unix. Ось декілька методів пошуку речей, які відсутні у вашій заяві про шлях.
знайти:
sudo find / -name <FILE>
Тут ви знайдете все, що існує у файловій системі, яку ви даєте в якості першого аргументу. Потрібно запустити як root для пошуку приватних каталогів. Він також підтримує підстановку, якщо ви не повністю впевнені в назві.
Термінал:
Якщо у вас є файл у пошуку, ви можете відкрити вікно терміналу і запустити файл у нього. Термінал з потім відображає повний шлях до файлу.
Прожектор:
Досить пояснюючи себе. Ви даруєте цикли процесорів, щоб він міг зберігати індекс ваших даних
which
Команда , хоча буде працювати , як правило , не є правильним інструментом для використання , щоб зробити цей вид роботи. Дивіться це питання U&L Q&A: unix.stackexchange.com/questions/85249/…