4Debian.Info - Портал русскогоязычного сообщества Debian Карта сайта Контакты

Меню

Репозитории Debian

Скачать Debian

Установка Debian - Видео



Авторизация:

Новые статьи

Статьи в RSS

Новые комментарии

Новые уроки

Уроки в RSS


which — Unix-утилита, отображающая полный путь к указанным командам или сценариям.

Содержание
Описание

Which принимает один или более аргументов имя_программы. Для каждого из них она выводит тот полный путь к исполняемому файлу, который будет использован командной оболочкой, если имя_программы ввести в качестве команды в командной строке. Эта программа выполняет поиск исполняемых файлов или сценариев в каталогах, перечисленных в переменной окружения PATH используя тот же алгоритм, что и bash.

Опции
--all, -a
Выводит все совпавшие исполняемые файлы по содержимому в переменной окружения PATH, а не только первый из них.
--read-alias, -i
Считывает псевдонимы, поступающие из стандартного ввода и направляет на стандартный вывод информацию по совпавшим. Эта опция полезна в сочетании с использованием псевдонима для самой команды which. Например:
alias which='alias | which -i'.
--skip-alias
Игнорирует опцию «--read-alias», если таковая имеется. Эта опция полезна для точного поиска обычных двоичных файлов, которые используют опцию «--read-alias» в псевдониме или функции для which.
--read-functions
Считывает функции, определённые в командной оболочке и поступающие из стандартного ввода, а затем направляет на стандартный вывод информацию по совпавшим. Эта опция полезна в сочетании с функциями командной оболочки для самой команды which. Например:
bash:
  1. which() { declare -f | which --read-functions $@ }
  2. 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 используют в различных псевдонимах (C shell) или сценариях (Bourne shell) командных оболочек, например, как показано ниже:

Командная оболочка bash:

bash:
  1. which ()
  2. {
  3. (alias; declare -f) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot $@
  4. }
  5. export -f which

Командная оболочка tcsh:

bash:
  1. alias which 'alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

В следующем примере показано два возможных варианта вывода одной и той же команды which, в зависимости от контекста её применения. В первом случае, вместо полного пути выводится ~/ и ./ (для исполняемого файла, расположенного в домашнем каталоге пользователя), когда команда which непосредственно запущена пользователем из командной строки. Во втором — команда which запущена из скрипта. Здесь будет выведен полный путь к указанной программе:

bash:
  1. which q2
  2. > ~/bin/q2
  3. echo `which q2`
  4. > /home/carlo/bin/q2


Яндекс.Метрика
4Debian.Info
При полной или частичной перепечатке текстов статей и публикаций гиперссылка на www.4debian.info обязательна. | "4Debian.Info" | © 2018