Только для посетителей нашего блога: получите дополнительные 3 месяца бесплатно + скидку 10% на трехгодичный план YSBLOG10
Захватить сделку

Команда Pwd в Linux: объяснение с примерами в 2026 году

Команда pwd в Linux (вывести рабочий каталог) отображает абсолютный путь к вашему текущему местоположению в файловой системе. Это поможет вам подтвердить ваше текущее местоположение, избежать ошибок в путях и обеспечить надежную работу скриптов. Используйте pwd с параметрами. как -L (логический) и -P (физический) для обработки символических ссылок и обеспечения корректного указания путей в терминалах, скриптах и ​​на серверах.

Понимание команды pwd в Linux является основополагающим для любого пользователя терминала, независимо от того, являетесь ли вы им или нет. manage С помощью pwd можно создавать серверы, разрабатывать веб-приложения или автоматизировать развертывание. В этом руководстве я объясню, что делает pwd, чем он отличается в разных оболочках, когда использовать -L, а когда -P, и приведу практические примеры для реальных рабочих процессов, включая сценарии хостинга и DevOps.


Что такое команда pwd в Linux?

pwd означает «Распечатать рабочий каталог». При запуске оболочка выводит абсолютный путь (начинающийся с /) к текущему каталогу.

Это позволяет легко подтверждать контекст, составлять безопасные пути к файлам и отлаживать скрипты. pwd существует как в виде встроенной команды оболочки (например, в Bash), так и в виде автономного исполняемого файла (обычно /bin/pwd в GNU coreutils).

Логические и физические пути (почему -L и -P важны)

Доступ к каталогам осуществляется через символические ссылки (symlinks). Команда pwd может показать:

  • Логический путь (-L): Уважает пройденный вами путь (может включать символические ссылки).
  • Физический путь (-P): Разрешает символические ссылки на реальный, канонический путь на диске.
# Suppose /var/www/current -> /var/www/releases/2026-01-09 (symlink)

cd /var/www/current
pwd        # logical default in many shells: /var/www/current
pwd -P     # physical path: /var/www/releases/2026-01-09

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

Синтаксис и параметры pwd

pwd [OPTION]
  • -Л: Вывести логический рабочий каталог (с учетом символических ссылок; часто используется значение по умолчанию из встроенной оболочки).
  • -П: Выведите на экран физический каталог (разрешите символические ссылки, используя файловую систему).
  • -помощь: Показать справку (GNU coreutils /bin/pwd).
  • -версия: Показать версию (GNU coreutils /bin/pwd).

Встроенные команды оболочки и /bin/pwd могут иметь незначительные различия в поведении. В большинстве дистрибутивов Linux встроенной команды pwd в Bash достаточно, и она работает быстрее; GNU /bin/pwd обеспечивает согласованное поведение в разных скриптах и ​​оболочках.

pwd Builtin vs /bin/pwd

Многие оболочки (Bash, Zsh, Dash) включают pwd в качестве встроенной функции для повышения производительности и переносимости. Внешний исполняемый файл (/bin/pwd) входит в состав coreutils и полезен, когда требуется явное и предсказуемое поведение или когда среда оболочки ограничена.

# Check what your shell uses first
type pwd       # In Bash/Zsh: shows 'pwd is a shell builtin'
which pwd      # Points to /bin/pwd for the external binary

# Force the external binary even if a builtin exists
command pwd
/bin/pwd

Практические примеры pwd

1. Основное использование

pwd
# Output: /home/username/projects

Используйте это для подтверждения вашей рабочей директории перед выполнением команд, создающих или удаляющих файлы.

2. Физический путь обозначьте с помощью -P.

# If you navigated via a symlink:
pwd -P
# Output: /mnt/storage/data/app (actual target path)

Выберите параметр -P, если скриптам требуется каноническое местоположение (часто используется в конвейерах сборки, резервном копировании и публикации артефактов).

3. Безопасное использование команды `pwd` в скриптах командной оболочки.

#!/usr/bin/env bash
set -euo pipefail

# Prefer the $PWD shell variable for speed; it tracks your current directory.
echo "Logical path: $PWD"

# For the canonical path (avoid symlink surprises):
REAL_DIR="$(pwd -P)"
echo "Physical path: $REAL_DIR"

# Use quotes to handle spaces and special characters
tar -czf "$REAL_DIR/backup.tgz" -C "$REAL_DIR" .

Команда `$PWD` поддерживается оболочкой и обычно выполняется быстрее, чем запуск нового процесса с помощью `$(pwd)`. Используйте `$(pwd -P)`, когда необходимо разрешить символические ссылки. Всегда заключайте переменные в кавычки, чтобы избежать проблем с пробелами.

4. Сохранение и восстановление каталогов

# Simple save/restore
OLD_DIR="$(pwd)"
cd /etc
# ...do work...
cd "$OLD_DIR"

# Or use the directory stack (Bash/Zsh)
pushd /var/log >/dev/null
# ...do work...
popd >/dev/null

Стеки каталогов обеспечивают бесперебойность рабочего процесса при многоэтапном развертывании или выполнении административных задач.

5. Объединение с помощью относительных путей.

cd ../..
echo "Now at: $(pwd)"
# Use "$PWD" in scripts for clarity
cp "$PWD/config/example.env" "$PWD/.env"

Сочетание команды pwd с относительной навигацией (cd) уменьшает количество ошибок в сложных древовидных структурах каталогов, особенно в монорепозиториях.


Устранение неполадок и нестандартные ситуации

  • Родительский каталог удален или недоступен: Если каталог в вашем пути будет удален или вы потеряете права на чтение/выполнение, pwd может... сбой с ошибкой.
  • Хлор или контейнеры: Внутри chroot, Docker или Kubernetes-подов команда pwd отображает путь относительно этой среды. Он корректен внутри пространства имен, но не на хосте.
  • Сетевые файловые системы (NFS): Разрешение символических ссылок и задержка могут влиять на параметр -P; для детерминированного поведения в распределенных файловых системах предпочтительнее использовать -P.
  • Оболочки, не поддерживающие POSIX: В современных оболочках поведение в целом одинаково, но в скриптах следует явно использовать параметр -P, если требуются канонические пути.
# Example error when the directory becomes invalid
cd /tmp/sandbox/child
rm -rf /tmp/sandbox
pwd
# getcwd: cannot access parent directories: No such file or directory

Безопасность и лучшие практики

  • Пути к цитируемым данным: Для безопасной обработки пробелов и специальных символов всегда используйте кавычки “$PWD” и “$(pwd -P)”.
  • В скриптах предпочтительно использовать переменную $PWD: Это быстро и поддерживается командной оболочкой; вызывайте команду pwd -P только тогда, когда вам нужен реальный путь.
  • Устранение символических ссылок для конфиденциальных операций: Используйте параметр -P перед удалением, упаковкой или синхронизацией, чтобы избежать обработки неправильного целевого объекта.
  • Использовать наименьшие привилегии: Убедитесь, что у пользователя есть минимально необходимые права доступа; неожиданные состояния «доступ запрещен» могут привести к сбоям в работе скриптов в зависимости от текущего рабочего каталога.
  • Переносимость: Для обеспечения максимальной переносимости по стандарту POSIX используйте pwd и параметры -L/-P только в том случае, если это поддерживается целевой средой; тестируйте в среде непрерывной интеграции (CI).
  • CD: Сменить каталог; используйте команду `pwd` для проверки местоположения.
  • pushd/popd/dirs (Bash/Zsh): Управление стеком каталогов.
  • realpath path/ или readlink -f path/: Разрешать символические ссылки для любого пути, а не только для текущего каталога.
  • basename / dirname: Извлекайте компоненты файлов или каталогов из указанных путей.
  • найти “$PWD” -type f: Используйте pwd в качестве базового адреса для поиска или пакетных операций.

Как pwd вписывается в рабочие процессы веб-хостинга и DevOps

В хостинге и Конвейеры CI / CDПроверка текущего пути с помощью pwd гарантирует, что ваши скрипты будут выполняться в нужном месте, избегая дорогостоящих ошибок, таких как развертывание из устаревшего каталога или удаление неправильной папки. Для WordPress проверка текущего пути помогает в таких задачах, как операции wp-cli, управление корневыми каталогами документов (например, /var/www/html) и обработка символических ссылок на каталоги релизов.

At YouStableНаши среды хостинга Linux поддерживают надежный доступ к командной оболочке и предсказуемую структуру каталогов. Использование команды pwd -P, а также realpath и тщательное экранирование помогают нашим клиентам безопасно развертывать приложения, автоматизировать резервное копирование и быстро отлаживать ошибки. Если вы занимаетесь миграцией или созданием конвейеров, наша команда может помочь вам стандартизировать обработку путей на тестовой и производственной средах.

Распространенные ошибки, которых следует избегать

  • При условии, что логический и физический пути совпадают, всегда проверяйте это с помощью параметра -P во время развертывания.
  • Если не заключать в кавычки пути "$PWD", это может привести к ошибкам в скриптах, содержащих пробелы или специальные символы.
  • Смешивание различий в оболочках, используемых для встроенных команд и исполняемых файлов, может привести к незаметным ошибкам; при необходимости явно используйте /bin/pwd.
  • Игнорирование прав доступа к текущему каталогу (pwd) может привести к ошибке, если промежуточные каталоги недоступны.
  • Для обеспечения переносимости и наглядности скриптов при использовании жестких относительных путей применяются директивы “$PWD” или “$(pwd -P)”.

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

Что делает команда pwd в Linux?

Команда `pwd` выводит абсолютный путь к текущему рабочему каталогу. Она помогает определить ваше текущее местоположение в файловой системе и необходима для написания скриптов, устранения неполадок и безопасной работы с файлами.

В чём разница между pwd-L и pwd-P?

-L отображает логический путь, сохраняя символические ссылки во время навигации. -P отображает физический путь, разрешая символические ссылки на их фактические целевые файловые системы. Используйте -P при выполнении операций, требующих указания реального местоположения, таких как развертывание или резервное копирование.

Команда pwd является встроенной в оболочку или внешней?

И то, и другое. Многие оболочки предоставляют встроенный pwd для скорости и переносимости, а также существует внешний исполняемый файл (часто /bin/pwd из GNU coreutils). Используйте команду `type pwd`, чтобы узнать, какой из них предпочитает ваша оболочка, и команду `make pwd` или `/bin/pwd`, чтобы принудительно использовать внешний.

Когда следует использовать $PWD вместо $(pwd)?

В скриптах для повышения производительности и простоты предпочтительнее использовать переменную $PWD; она поддерживается оболочкой и обновляется при переходе в каталог. Используйте $(pwd -P), когда вам нужен канонический путь, определяемый с помощью символической ссылки. Всегда заключайте переменные в кавычки, чтобы избежать проблем с пробелами.

Почему команда pwd выдает ошибку «getcwd: cannot access parent directories»?

Это происходит, если текущий каталог или родительский каталог были удалены, или были изменены права доступа. Перейдите по допустимому пути (например, cd /) или восстановите права доступа. В автоматизированных средах защищайте скрипты проверками и резервными вариантами.


Заключение

В Linux команда `pwd` — это... Небольшой, но крайне важный инструмент для уверенной работы в командной строке. Освоение логических и физических путей, предпочтение переменной $PWD в скриптах и ​​использование параметра -P для развертывания с большим количеством символических ссылок сделают ваши рабочие процессы более безопасными и предсказуемыми. Надежная обработка путей — это ключевая передовая практика, особенно в хостинге и CI/CD на таких платформах, как... YouStable.

Отправить по:

Санджит Чаухан

Санджит Чаухан — блогер и эксперт по SEO, посвятивший себя помощи веб-сайтам в органическом росте. Он делится практическими стратегиями, полезными советами и идеями для увеличения трафика, улучшения позиций в поисковой выдаче и максимального присутствия в интернете.

Оставьте комментарий

Ваш электронный адрес не будет опубликован. Обязательные поля помечены * *

Наверх