Определите ваш текущий рабочий каталог в Linux с помощью команды pwd
Главное меню » Операционная система Linux » Определите ваш текущий рабочий каталог в Linux с помощью команды pwd
Что такое текущий рабочий каталог
Текущий рабочий каталог – это каталог, в котором в данный момент работает пользователь. Каждый раз, когда вы взаимодействуете с командной строкой, вы работаете в каталоге.
По умолчанию при входе в систему Linux в качестве текущего рабочего каталога указывается домашний каталог. Чтобы изменить рабочий каталог, используйте команду cd. Например, чтобы изменить текущий рабочий каталог /tmp, введите:
В некоторых дистрибутивах Linux, или если у вас настроено приглашение bash или zsh, путь к вашему текущему рабочему каталогу может быть показан в приглашении оболочки.
Команда pwd
Команда pwd обозначает печать рабочего каталога. Это одна из самых основных и часто используемых команд в Linux. После выполнения команда напечатает полный путь вашего текущего рабочего каталога.
pwd это оболочка, встроенная в большинство современных оболочек, таких как bash и zsh. Его поведение немного отличается от автономного исполняемого файла /bin/pwd. Вы можете использовать type -a для отображения всех мест, содержащих pwd.
Как видно из вывода ниже, встроенная оболочка имеет приоритет над автономным исполняемым файлом и будет использоваться всякий раз, когда вы печатаете pwd. Если вы хотите использовать автономную команду pwd, вам нужно будет указать полный путь к бинарному файлу /bin/pwd.
Как найти свой текущий рабочий каталог
Чтобы узнать, в каком каталоге вы сейчас находитесь, введите pwd в свой терминал:
Команда отобразит путь вашего текущего рабочего каталога:
Команда выполняет печать PWD переменной среды. Вы получите тот же вывод, если вы наберете:
Команда pwd может принимать только два аргумента:
- -L ( –logical) – Показать значение переменной $PWD. По умолчанию pwd ведет себя так, как будто опция -L указана.
- -P ( –physical) – Показать физический каталог, без каких-либо символических ссылок
Чтобы лучше проиллюстрировать, как работает опция -P, мы создадим каталог и символическую ссылку, которая будет указывать на каталог:
Теперь, если вы перейдете в каталог /tmp/symlink и введете pwd в свой терминал:
Вывод покажет, что ваш текущий рабочий каталог /tmp/symlink.
Если вы запускаете ту же команду, используя опцию -P:
Ваш текущий рабочий каталог – /tmp/directory это каталог, на который указывает символическая ссылка.
Заключение
К настоящему времени вы должны хорошо понимать, что является текущим рабочим каталогом и как использовать команду pwd, чтобы найти ваш текущий рабочий каталог.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Текущий каталог
Файловая система не только систематизирует данные, но и является основой метафоры «рабочего места» в Linux. Каждая выполняемая программа «работает» в строго определённом каталоге файловой системы. Такой каталог называется текущим каталогом, можно представлять, что программа во время работы «находится» именно в этом каталоге, это её «рабочее место». В зависимости от текущего каталога может меняться поведение программы: зачастую программа будет по умолчанию работать с файлами, расположенными именно в текущем каталоге — до них она «дотянется» в первую очередь. Текущий каталог есть у любой программы, в том числе и у командной оболочки (shell) пользователя. Поскольку взаимодействие пользователя с системой обязательно опосредовано командной оболочкой, можно говорить о том, что пользователь «находится» в том каталоге, который в данный момент является текущим каталогом его командной оболочки.
Все команды, отдаваемые пользователем при помощи shell, наследуют текущий каталог shell, т. е. «работают» в том же каталоге. По этой причине пользователю важно знать текущий каталог shell. Для этого служит утилита pwd :
[methody@localhost methody]$ pwd/home/methody
[methody@localhost methody]$
Пример 1. Текущий каталог: pwd
pwd (аббревиатура от print working directory) возвращает полный путь текущего каталога командной оболочки, естественно, именно той командной оболочки, при помощи которой была выполнена команда pwd . В данном случае Мефодий узнал, что в этот момент (на этой виртуальной консоли) текущим является каталог « /home/methody ».
Почти все утилиты, с которыми работал Мефодий в предыдущих лекциях, по умолчанию читают и создают файлы в текущем каталоге. Так, Мефодий обращался к файлам, не используя никаких путей, просто по имени. Например, использовал утилиту cat , чтобы вывести на экран содержимое файла « text ».
[methody@localhost methody]$ cat textFile: info.info, Node: Help-Cross, Up: Cross-refs
The node reached by the cross reference in Info
. . .
[methody@localhost methody]$ cat /home/methody/text
File: info.info, Node: Help-Cross, Up: Cross-refs
The node reached by the cross reference in Info
Пример 2. Полный и относительный путь к файлу
В действительности, командная оболочка, прежде чем передавать параметр « text » (имя файла) утилите cat , подставляет значение текущего каталога — получается полный путь к этому файлу в файловой системе: « /home/methody/text ». Содержимое именно этого файла утилита cat выведет на экран.
Вообще говоря, в нескольких разных каталогах файловой системы могут оказаться файлы с именем « text », именно поэтому командная оболочка всегда передаёт программам и утилитам «точный адрес» файла в файловой системе — полный путь.
Набирая только имя файла без пути к текущему каталогу, Мефодий воспользовался относительным путём к этому файлу.
относительный путь Путь к объекту файловой системы, не начинающийся в корневом каталоге. Для каждого процесса Linux определён текущий каталог, с которого система начинает относительный путь при выполнении файловых операций.
Относительный путь строится точно так же, как и полный — перечислением через « / » всех названий каталогов, встретившихся при движении к искомому каталогу или файлу. Между полным путём и относительным есть только одно существенное различие: относительный путь начинается от текущего каталога, в то время как полный путь всегда начинается от корневого каталога. Относительный путь любого файла или каталога в файловой системе может иметь любую конфигурацию: чтобы добраться до искомого файла можно двигаться как по направлению к корневому каталогу, так и от него (см. раздел Filesystem_use.Перемещение по дереву каталогов). Linux различает полный и относительный пути очень просто: если имя объекта начинается на « / » — это полный путь, в любом другом случае — относительный.
Пользователь может обращаться к файлу при помощи полного или относительного пути — результат будет совершенно тот же. Так, команды cat text и cat /home/methody/text , отданные Мефодием, дали одинаковый результат, поскольку выводился один и тот же файл. Если в относительном пути встречаются символы « / », рассматриваются подкаталоги текущего каталога, их подкаталоги и т. д. Короче говоря, относительный путь строится по тем же правилам, что и полный, с той разницей, что относительный путь начинается не с символа « / ». Сам текущий каталог, каков бы ни был полный путь к нему, всегда имеет ещё одно обозначение, « . », которое можно использовать, если по каким-то причинам требуется, чтобы даже в относительном пути к файлу, находящемуся в текущем каталоге, присутствовал элемент «имя каталога». Так, пути « text » и « ./text » тоже приводят к одному и тому же файлу, однако в первом случае в строке пути не содержится ничего, кроме имени файла.
Отделить путь к файлу от его имени можно с помощью команд dirname и basebane соответственно:
[methody@localhost methody]$ basename /home/methody/texttext
[methody@localhost methody]$ basename text
text
[methody@localhost methody]$ dirname /home/methody/text
/home/methody
[methody@localhost methody]$ dirname ./text
.
[methody@localhost methody]$ dirname text
Пример 3. Использование dirname и basename
Мефодий заметил, что для « text » и « ./text » dirname выдало одинаковый результат: « .», что понятно: как было сказано выше, эти формы пути совершенно эквивалентны, а при автоматической обработке результатов dirname гораздо лучше получить « . », чем пустую строку.
Зачем нужна команда pwd и что такое текущая рабочая директория
Из этой статьи вы узнаете, как определить текущую рабочую директорию (current working directory) с помощью команды pwd.
Что такое текущая рабочая директория
Текущая рабочая директория — директория, в которой пользователь работает в данный момент. При взаимодействии с командной строкой вы всегда находитесь внутри директории.
По умолчанию, когда вы запускаете операционную систему Linux, текущим рабочим каталогом является домашняя директория. Изменить рабочую директорию можно с помощью команды cd.
Например, чтобы изменить текущую рабочую директорию на /tmp, используйте такую команду:
Путь к текущей рабочей директории может отображаться в оболочке командной строки.
Команда pwd
Команда pwd выводит текущую рабочую директорию. Это одна из базовых и самых популярных команд в Linux. При вызове pwd выводится полный путь к текущей рабочей директории.
Команда pwd встроена в большинство современных командных оболочек, в том числе в Bash. Её поведение отличается от выполнения /bin/pwd. С помощью команды type можно получить все места, где есть pwd:
Как показывает вывод, встроенная команда pwd имеет более высокий приоритет по сравнению с /bin/pwd. Поэтому она используется всякий раз, когда вы вводите в командую строку pwd. Если вы хотите использовать файл /bin/pwd, нужно указать в командной строке полный путь до него.
Как найти текущую рабочую директорию
Чтобы понять, в какой директории вы работаете в данный момент, введите в терминале pwd. Вывод может выглядеть так (название директории может отличаться):
Всё, что делает команда pwd — выводит значение переменной окружения PWD. Такой же вывод получится, если ввести в терминале:
Команда pwd принимает только два аргумента:
- -L (—logical) — не разрешать симлинки.
- -P (—physical) — отображать физическую директорию без симлинков.
По умолчанию pwd ведёт себя так, как будто применена опция -L.
Чтобы понять, как работает аргумент -P, создадим директорию и симлинк, указывающий на эту директорию.
Когда вы зайдёте в директорию /tmp/symlink и введёте команду pwd, вывод будет таким:
То есть текущей рабочей директорией становится /tmp/symlink. Если ввести команду pwd -P, вывод будет таким:
Симлинк (англ. Symlink, symbolic link) — символическая ссылка. Этим термином обозначают файл, в котором содержится абсолютный или относительный путь к другому файлу или директории.
То есть получаем директорию, на которую указывает симлинк.
Заключение
Текущая рабочая директория — директория, из которой вы вызываете команды в терминале. Чтобы отобразить текущую рабочую директорию, нужно использовать команду pwd. Если у вас остались вопросы, добро пожаловать в комментарии.