← Назад к вопросам

Как посмотреть полный путь до каталога в консоли Linux

1.0 Junior🔥 71 комментариев
#Инструменты тестирования

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI5 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Определение полного (абсолютного) пути в Linux

В Linux полный (абсолютный) путь — это путь к файлу или каталогу, начинающийся с корневого каталога /. Он однозначно указывает местоположение объекта в файловой системе, независимо от текущего рабочего каталога. Для определения такого пути используются несколько основных консольных команд.

Основные команды для просмотра пути

1. pwd — Print Working Directory

Самая простая и распространённая команда. Она выводит абсолютный путь текущего каталога, в котором находится пользователь.

$ pwd
/home/username/projects/myapp

2. readlink — разрешение символьных ссылок

Полезна для получения реального пути, если вы находитесь в каталоге, который является символической ссылкой. Флаг -f (или --canonicalize) рекурсивно раскрывает все ссылки.

# Просмотр пути, на который указывает ссылка
$ readlink -f /usr/local/bin/python3
/usr/bin/python3.11

# Получение каноничного пути текущего каталога (аналог pwd с разрешением ссылок)
$ readlink -f .
/home/realprojects/myapp

3. realpath — получение абсолютного пути

Утилита, специально созданная для преобразования относительных путей в абсолютные и разрешения символических ссылок.

$ realpath ./documents
/home/username/documents

# Работает и с симлинками
$ realpath /usr/bin/python
/usr/bin/python3.11

Продвинутые методы и комбинации

4. Использование подстановки оболочки $PWD

В переменной окружения $PWD (Present Working Directory) bash и другие оболочки автоматически хранят текущий путь.

$ echo "Текущий каталог: $PWD"
Текущий каталог: /etc/nginx/conf.d

5. Команда find для поиска и вывода путей

Если нужно найти конкретный каталог и сразу увидеть его полный путь, можно использовать find с явным указанием начальной точки.

# Поиск каталога 'secrets' начиная с корня и вывод его абсолютного пути
$ find / -type d -name 'secrets' 2>/dev/null
/var/lib/app/secrets
/opt/oldapp/secrets

6. Получение пути к родительскому или целевому каталогу

Часто требуется путь не текущего, а другого каталога. Здесь помогает команда dirname.

# Получить абсолютный путь к родительскому каталогу файла config.json
$ dirname /home/user/project/src/config.json
/home/user/project/src

# Комбинация для получения абсолютного пути к родительскому каталогу
$ realpath ./config/../
/home/user/project

Практические примеры и сценарии для QA

В работе QA-инженера точное знание путей критически важно для:

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

Пример сценария: Вы находитесь в сложной структуре каталогов, часть из которых — симлинки (частое явление в Docker-окружениях или при сборке проектов). Чтобы понять, где физически лежат логи тестов, используйте комбинацию:

# Переходим в каталог с логами (он может быть ссылкой)
$ cd /opt/app/logs

# Узнаём реальный путь
$ realpath .
/var/log/containers/app-test/logs

# Теперь мы знаем истинное местоположение и можем, например, скопировать логи
$ cp $(realpath .)/test_run_12.log /home/qa/analysis/

Ключевые отличия команд

  • pwd vs realpath / readlink -f: pwd показывает путь с учётом символических ссылок на пути, а realpath и readlink -f раскрывают их, показывая физическое расположение.
  • realpath vs readlink: realpath более современная и простая в использовании (по умолчанию рекурсивно разрешает ссылки), но может отсутствовать в минималистичных дистрибутивах. readlink — классический инструмент, всегда доступный.

Таким образом, выбор команды зависит от контекста. Для быстрой проверки текущего пути используйте pwd. Для получения гарантированно абсолютного и каноничного пути, особенно в скриптах, предпочтительнее realpath. Для совместимости со старыми системами подойдёт readlink -f.

Как посмотреть полный путь до каталога в консоли Linux | PrepBro