which(1)
| WHICH(1) | General Commands Manual | WHICH(1) |
НАЗВАНИЕ
which - отображает полный путь к указанным командам или сценариям.
СИНТАКСИС
which [опции] [--] имя_программы [...]
ОПИСАНИЕ
Which принимает один или более аргументов имя_программы. Для каждого из них она выводит тот полный путь к исполняемому файлу, который будет использован командной оболочкой, если имя_программы ввести в качестве команды в командной строке. Эта программа выполняет поиск исполняемых файлов или сценариев в каталогах, перечисленных в переменной окружения PATH используя тот же алгоритм, что и bash(1).
Эта man-страница получена из файла which.texinfo.
ОПЦИИ
- --all, -a
- Выводит все совпавшие исполняемые файлы по содержимому в переменной окружения PATH, а не только первый из них.
- --read-alias, -i
- Считывает
псевдонимы,
поступающие
из
стандартного
ввода и
направляет
на
стандартный
вывод
информацию
по
совпавшим.
Эта опция
полезна в
сочетании
с
использованием
псевдонима
для самой
команды which.
Например:
alias which=´alias | which -i´. - --skip-alias
- Игнорирует опцию `--read-alias´, если таковая имеется. Эта опция полезна для точного поиска обычных двоичных файлов, которые используют опцию `--read-alias´ в псевдониме или функции для which.
- --read-functions
- Считывает
функции,
определённые
в
командной
оболочке и
поступающие
из
стандартного
ввода, а
затем
направляет
на
стандартный
вывод
информацию
по
совпавшим.
Эта опция
полезна в
сочетании
с
функциями
командной
оболочки
для самой
команды which.
Например:
which() { declare -f | which --read-functions $@ }
export -f which - --skip-functions
- Игнорирует опцию `--read-functions´, если таковая имеется. Эта опция полезна для точного поиска обычных двоичных файлов, которые используют опцию `--read-alias´ в псевдониме или функции для which.
- --skip-dot
- Пропускает все каталоги из переменной окружения PATH, которые начинаются с точки.
- --skip-tilde
- Пропускает все каталоги из переменной окружения PATH, имена которых начинаются с символа тильда (~), а также все исполняемые файлы, которые расположены в каталоге, указанном в переменной HOME.
- --show-dot
- Если имя каталога из переменной окружения PATH начинается с точки и соответствующий исполняемый файл имя_программы был найден в этом пути, тогда вместо полного пути будет выведено "./имя_программы".
- --show-tilde
- Выводит тильду, когда каталог совпадает с каталогом, указанном в переменной окружения HOME (т.е. с домашним каталогом). Эта опция игнорируется, если which вызывается суперпользователем (root).
- --tty-only
- Не обрабатывает опции, которые находятся справа за этой опцией, если они поступают не с терминала (tty).
- --version,-v,-V
- Выводит информацию о версии программы на стандартное устройство и завершает её работу.
- --help
- Выводит краткое описание опций программы на стандартное устройство и завершает её работу.
КОДЫ ЗАВЕРШЕНИЯ РАБОТЫ
Программа which возвращает номера некорректных опций или -1, когда пропущен аргумент `имя_программы´.
ПРИМЕР
Обычно утилиту which используют в различных псевдонимах (C shell) или сценариях (Bourne shell) командных оболочек, например, как показано ниже:
Командная оболочка [ba]sh:
which ()
{
(alias; declare -f) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot $@
}
export -f which
Командная оболочка [t]csh:
alias which ´alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde´
В следующем примере показано два возможных варианта вывода одной и той же команды which, в зависимости от контекста ее применения. В первом случае, вместо полного пути выводится ~/ и ./ (для исполняемого файла, расположенного в домашнем каталоге пользователя), когда команда which непосредственно запущена пользователем из командной строки. Во втором - команда which запущена из скрипта. Здесь будет выведен полный путь к указанной программе:
> which q2 ~/bin/q2 > echo `which q2` /home/carlo/bin/q2
ОШИБКИ
Домашний каталог определяется из переменной окружения HOME, поэтому если эта переменная будет неопределённой, это вызовет прерывание выполнения данной программы. Программа which будет считать два эквивалентных каталога различными, если один из них содержит путь с символической ссылкой.
АВТОР
Carlo Wood <carlo@gnu.org>
СМ. ТАКЖЕ
bash(1)
ПЕРЕВОД
оригинального
файла на
английском
which.1.gz (1515 байт от
15.09.2003) выполнен
Aleksander N.Gorohovski <angel@feht.dgtu.donetsk.ua> 09.11.2005.
РЕЦЕНЗИЯ ПЕРЕВОДА
Kirill Maslinsky <kirill@altlinux.ru>
