Гид по технологиям

Как найти путь исполняемого файла в Linux

8 min read Linux Обновлено 27 Dec 2025
Найти путь исполняемого файла в Linux
Найти путь исполняемого файла в Linux

Быстрые ссылки

  • Метод 1: which
  • Метод 2: whereis
  • Метод 3: type
  • Метод 4: command -v

Короткие определения (одно предложение каждое):

  • PATH — список директорий, в которых оболочка ищет исполняемые файлы.
  • Алиас — короткое имя команды, заменяемое оболочкой на другую команду или набор команд.
  • Встроенная команда (builtin) — команда, реализованная в самой оболочке, а не отдельный файл.

Почему это важно

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


Метод 1: which

Команда which ищет исполняемый файл по каталогу(ам), перечисленным в переменной окружения PATH, и показывает первый найденный путь. Для вывода всех совпадений используйте опцию -a.

Синтаксис:

which -a [fileName] ...

Выходные коды:

  • 0 — все указанные файлы найдены и доступны для выполнения.
  • 1 — по крайней мере один файл не является исполняемым.
  • 2 — использована неизвестная опция.

Пример: найти python3.10

which -a Python3.10

Вывод путей исполняемых файлов с помощью which

Источник: How-to Geek

Советы и ограничения:

  • which ищет только по PATH. Если бинарник находится вне PATH, which его не найдёт.
  • which возвращает первый найденный файл, если не указана -a.

Когда использовать which

  • Быстрая проверка того, какая версия команды вызывается по умолчанию.
  • Когда хотите увидеть фактический исполняемый файл из PATH.

Альтернатива: для более полного результата используйте type -a или command -v.


Метод 2: whereis

Команда whereis находит расположение бинарных файлов, исходников и man-страниц. Она просматривает стандартные системные каталоги и не ограничивается только PATH.

Синтаксис:

whereis [options] [fileName] ...

Полезные опции:

  • -b — искать только бинарники.
  • -m — искать только man-страницы.
  • -B <путь> — задать путь для поиска бинарников.

Пример: найти firefox

whereis firefox

Выход покажет пути к бинарнику и страницам руководства, например /usr/bin/firefox.

Ограничения и заметки:

  • whereis ориентирован на стандартные пути системы и кеши. Если программа установлена в нестандартном месте, гдеis может её не показать.
  • whereis не проводит рекурсивный поиск по всему диску; он полагается на предопределённые каталоги и конфигурацию.

Когда использовать whereis

  • Чтобы быстро найти и бинарник, и соответствующую man-страницу.
  • Для поиска системных установок и пакетов в стандартных локациях.

Метод 3: type

Команда type — встроенная в оболочку (например, bash, zsh). Она показывает, является ли имя алиасом, функцией, встроенной командой или внешним исполняемым файлом. type полезна для понимания природы команды.

Проверить, что type сама по себе является встроенной командой:

type type

Показывает путь или описание команды:

type fileName

Пример: python3.10

type python3.10

Чтобы показать все совпадения:

type -a python3.10

Вывод всех вхождений исполняемого файла с помощью type

Источник: How-to Geek

Когда использовать type

  • Когда нужно понять, переопределяет ли команда алиас или функция систему.
  • Когда важно знать, является ли команда встроенной в оболочку.

Отличие от which

  • type оперирует данными оболочки и может показать алиасы и функции; which смотрит только на исполняемые файлы в PATH.

Метод 4: command -v

command -v — это короткий и стандартный способ проверить, доступна ли команда и где она находится. Он доступен в большинстве POSIX-совместимых оболочек.

Синтаксис:

command -v fileName

Пример: firefox

command -v firefox

Вывод покажет либо полный путь /usr/bin/firefox, либо укажет, что это алиас или встроенная команда.

Когда использовать command -v

  • Быстрая скриптовая проверка наличия команды перед её вызовом.
  • В скриптах часто предпочтительнее command -v, потому что он стандартизирован и надёжен.

Сравнение команд

КомандаЧто ищетПоиск по PATHПоказывает все вхожденияВидит алиасы/встроенныеКогда применять
whichВнешние исполняемые файлыДаТолько с -aНетБыстро узнать путь реалного бинарника
whereisБинарники, исходники, manЧастично (стандартные пути)НетНетНайти системные файлы и документацию
typeАлиасы, функции, встроенные, внешниеДа (через оболочку)Да с -aДаПонять природу команды
command -vСтатус и путь командыДаНетПоказывает тип (встроенная/алиас/путь)Скриптовые проверки

Фактическая рекомендация: для интерактивной диагностики начните с type, затем which или command -v для подтверждения пути, а whereis — для поиска связанной документации.


Шпаргалка команд (чекшит)

  • which <имя> — показывает первый путь из PATH; which -a — все пути.
  • whereis <имя> — показывает бинарники и man-страницы.
  • type <имя> — показывает, является ли команда алиасом/функцией/встроенной/внешней; type -a — все совпадения.
  • command -v <имя> — компактно показывает путь или тип для использования в скриптах.

Примеры в скриптах:

# Проверить, что git доступен
if command -v git >/dev/null 2>&1; then
  echo "git доступен"
else
  echo "git не найден"
fi
# Узнать, какой python будет использован
echo "type:"; type python
echo "which:"; which -a python

Устранение неполадок: типичные сценарии и решения

  1. Команда не найдена, но файл есть на диске
  • Проверьте, входит ли каталог в PATH: echo $PATH
  • Если нет, добавьте его: export PATH=”$HOME/bin:$PATH”
  • Убедитесь, что файл исполняемый: chmod +x /путь/к/файлу
  1. Вызвается не та версия программы
  • Используйте which -a или type -a, чтобы найти все версии.
  • Приоритет зависит от порядка PATH; измените PATH или используйте абсолютный путь.
  1. Команда скрыта алиасом
  • Выполните type <имя> чтобы увидеть, является ли это алиасом.
  • Удалите алиас временно: unalias имя
  1. Контейнеры и chroot
  • Команды внутри контейнера или chroot используют своё окружение, PATH и набор установленных программ. Используйте /proc//exe или docker exec для проверки внутри среды.
  1. Символические ссылки
  • readlink -f $(which имя) покажет канонический путь до реального файла.

Когда эти команды не помогут и альтернативные подходы

Сценарии, где which/whereis/type/command -v могут быть недостаточны:

  • Файл находится в нестандартном каталоге, который не указан в PATH или в базе whereis.
  • Нужен поиск по всему диску (например, после ручной установки в /opt).
  • Программа запускается через интерпретатор, и фактический исполняемый файл скрыт.

Альтернативные команды и приёмы:

  • find / -type f -name ‘имя’ 2>/dev/null — полный поиск по файловой системе.
  • sudo updatedb && locate имя — быстрый поиск по базе locate.
  • dpkg -S <файл> или rpm -qf <файл> — выяснить, какому пакету принадлежит файл.
  • lsof -c <команда> — узнать, какие файлы открыты процессом.
  • readlink -f <путь> — получить реальный путь через симлинки.

Контрольный список по ролям

Для разработчика:

  • Убедиться, что используемый интерпретатор (python, node) — ожидаемой версии.
  • Добавить явный shebang и проверить PATH в среде CI.

Для системного администратора:

  • Проверить перекрытия версий между системными пакетами и вручную установленными.
  • Использовать whereis и пакетные менеджеры для аудита установок.

Для DevOps/инженера по доставке:

  • В pipeline явно указывать полный путь к бинарникам или использовать изолированные среды.
  • Контролировать разрешения и добавление путей в PATH для сервисных учётных записей.

Критерии приёмки

  • Команда возвращает ожидаемый абсолютный путь или ясное объяснение, почему путь не найден.
  • Для автоматизированных задач: команда корректно возвращает код 0 при успехе и ненулевой код при ошибке.
  • Скрипты используют command -v для проверки доступности команд.

Безопасность и конфиденциальность

  • Не выполняйте найденные бинарники, если не доверяете их происхождению.
  • Помните, что злоумышленник может поместить вредоносный исполняемый файл в каталог с более высоким приоритетом в PATH. Отдавайте предпочтение абсолютным путям в автоматизации.

Important: не доверяйте умолчаниям PATH в средах с неизвестной конфигурацией; явно задавайте пути в критичных сценариях.


Часто задаваемые вопросы

Как быстро проверить, что именно запустится при вводе команды в оболочке?

В интерактивной оболочке выполните type <имя>. Эта команда покажет, является ли имя алиасом, встроенной командой, функцией или внешним исполняемым файлом.

Какая команда лучше для скриптов, command -v или which?

В скриптах рекомендуется command -v, так как это стандартный POSIX-подход и он работает корректно в большинстве оболочек.

Что делать, если which ничего не находит, но программа точно установлена?

Проверьте PATH и права на файл (chmod +x). Если программа установлена в нестандартной папке, добавьте её в PATH или используйте полный путь.

Можно ли найти, какой пакет установил файл?

Да — используйте dpkg -S <путь> в Debian/Ubuntu или rpm -qf <путь> в RHEL/CentOS.

Как узнать реальный файл за символической ссылкой?

Используйте readlink -f $(which имя) для развёртывания символьных ссылок до реального файла.


Итог

Каждая из рассмотренных команд полезна в своём сценарии. Для быстрой интроспекции используйте type и command -v. Для проверки фактического бинарника — which, а для поиска связанной документации и системных файлов — whereis. При сложных случаях дополняйте эти инструменты find, locate, package manager и readlink.

Краткое напоминание: всегда проверяйте PATH и права доступа и используйте абсолютные пути в автоматизации, чтобы избежать неожиданных конфликтов.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Калибровка нескольких мониторов — пошагово
Hardware

Калибровка нескольких мониторов — пошагово

Скриншоты в Windows 11: все способы
How-to

Скриншоты в Windows 11: все способы

Как включить навыки Amazon Alexa
Инструкции

Как включить навыки Amazon Alexa

Отбеливание пожелтевшего пластика ретро‑устройств
Реставрация

Отбеливание пожелтевшего пластика ретро‑устройств

Безопасные онлайн‑покупки: как не стать жертвой мошенников
Кибербезопасность

Безопасные онлайн‑покупки: как не стать жертвой мошенников

PIVOTBY в Excel — инструкция и примеры
Excel

PIVOTBY в Excel — инструкция и примеры