Ответы:
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 для поиска в частных каталогах. Он также поддерживает шаблоны, если вы не совсем уверены в названии.
Терминал:
Если у вас есть файл в Finder, вы можете открыть окно терминала и поместить файл в него. Терминал с затем отобразить полный путь к файлу.
Прожектор:
Довольно понятно. Вы жертвуете циклы процессора, чтобы позволить ему сохранить индекс вашего файла
which
хотя и будет работать, как правило, не тот инструмент, который нужно использовать для выполнения этого типа работы. Смотрите эту U & L Q & A: unix.stackexchange.com/questions/85249/...