Команда pwd
Из этой статьи вы узнаете, как определить текущую рабочую директорию (current working directory) с помощью команды pwd.
Используйте команду pwd, чтобы узнать путь к текущему рабочему каталогу (папке), в котором вы находитесь от корневого каталога.
Команда вернёт абсолютный (полный) путь, который по сути является путём всех каталогов, начинающийся с косой черты (/). Примером абсолютного пути является /home/username.
Команда pwd встроена в большинство современных командных оболочек, в том числе в Bash. Её поведение отличается от выполнения /bin/pwd. С помощью команды type можно получить все места, где есть pwd:
type -a pwd
Получаем вывод:
pwd is a shell builtin pwd is /bin/pwd
Как показывает вывод, встроенная команда pwd имеет более высокий приоритет по сравнению с /bin/pwd. Поэтому она используется всякий раз, когда вы вводите в командую строку pwd. Если вы хотите использовать файл /bin/pwd, нужно указать в командной строке полный путь до него.
Всё, что делает команда pwd — выводит значение переменной окружения PWD. Такой же вывод получится, если ввести в терминале:
echo $PWD
Команда pwd принимает только два аргумента:
- -L (--logical) — не разрешать симлинки.
- -P (--physical) — отображать физическую директорию без симлинков.
По умолчанию pwd ведёт себя так, как будто применена опция -L.
Чтобы понять, как работает аргумент -P, создадим директорию и симлинк, указывающий на эту директорию.
mkdir /tmp/directory ln -s /tmp/directory /tmp/symlink
Когда вы зайдёте в директорию /tmp/symlink и введёте команду pwd, вывод будет таким:
/tmp/symlink
То есть текущей рабочей директорией становится /tmp/symlink. Если ввести команду pwd -P, вывод будет таким:
/tmp/directory
Симлинк (англ. Symlink, symbolic link) — символическая ссылка. Этим термином обозначают файл, в котором содержится абсолютный или относительный путь к другому файлу или директории.
То есть получаем директорию, на которую указывает симлинк.
Оффтоп: Интересно ещё и то что эта команда имеет историю с 70-х годов лаборатории AT&T Bell Labs системы UNIX где у них работал русский потомок эмигрант из России Виктор Александрович Высотский вроде как был техническим руководителем по созданию операционной системы Multics до Unix по википедии.
В этом ролике про UNIX на 13:37 YouTube https://www.youtube.com/watch?v=tc4ROCJYbm0 настоящий разработчик закинув ноги на стол вводит команду pwd в терминал Unix ровно 50 лет назад 🙂 и получает вывод своей рабочей директории точно так-же как и мы сейчас в 2019 году!