Поиск по сайту:

15 примеров команды «pwd» (печать рабочего каталога) в Linux


Для тех, кто работает с командной строкой Linux, очень полезна команда «pwd», которая сообщает, где вы находитесь – в каком каталоге, начиная с корня (/). Специально для новичков в Linux, которые могут заблудиться среди каталогов в интерфейсе командной строки во время навигации, на помощь приходит команда «pwd».

Что такое пвд?

«pwd» означает «Печать рабочего каталога». Как следует из названия, команда «pwd» печатает текущий рабочий каталог или просто пользователя каталога, в котором он находится в данный момент. Он печатает имя текущего каталога с полным путем, начиная с корня (/). Эта команда встроена в команду оболочки и доступна в большинстве оболочек — bash, Bourne, ksh, zsh и т. д.

Основной синтаксис pwd:
pwd [OPTION]
Параметры, используемые с pwd
 Options

 Описание

 -L (logical)

 Использовать PWD из среды, даже если он содержит символические ссылки

 -P (physical)

 Избегайте всех символических ссылок

 –help

 Отобразите эту справку и выйдите

 –version

 Вывести информацию о версии и выйти

Если используются обе опции «-L» и «-P», опция «L» имеет приоритет. Если в командной строке не указана опция, pwd будет избегать всех символических ссылок, т. е. примет во внимание опцию «-P».

Статус выхода команды pwd:

0

Успех

Non-zero

Ошибка

Цель этой статьи — дать вам глубокое представление о команде Linux «pwd» с практическими примерами.

1. Распечатайте текущий рабочий каталог.

avi@tecmint:~$ /bin/pwd

/home/avi

2. Создайте символическую ссылку на папку (скажем, /var/www/html в свой домашний каталог как htm). Перейдите во вновь созданный каталог и распечатайте рабочий каталог с символическими ссылками и без символических ссылок.

Создайте символическую ссылку на папку /var/www/html как htm в своем домашнем каталоге и перейдите к ней.

avi@tecmint:~$ ln -s /var/www/html/ htm
avi@tecmint:~$ cd htm

3. Распечатать рабочий каталог из среды, даже если он содержит символические ссылки.

avi@tecmint:~$ /bin/pwd -L

/home/avi/htm

4. Распечатать фактический физический текущий рабочий каталог, разрешив все символические ссылки.

avi@tecmint:~$ /bin/pwd -P

/var/www/html

5. Проверьте, совпадают ли выходные данные команды «pwd» и «pwd -P», т. е. не указаны ли никакие параметры в во время выполнения «pwd» учитывает или нет опцию -P автоматически.

avi@tecmint:~$ /bin/pwd

/var/www/html

Результат: это ясно из приведенных выше результатов примеров 4 и 5 (оба результата одинаковы), когда с помощью команды «pwd», автоматически учитывается опция «-P».

6. Версия для печати вашей команды «pwd».

avi@tecmint:~$ /bin/pwd --version

pwd (GNU coreutils) 8.23
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Jim Meyering.

Примечание. Команда pwd часто используется без параметров и никогда не используется с аргументами.

Важно: вы могли заметить, что мы выполняем приведенную выше команду как «/bin/pwd», а не как «pwd< /б> ».

Так в чем же разница? Ну, «pwd» означает встроенный в оболочку pwd. Ваша оболочка может иметь другую версию pwd. Пожалуйста, обратитесь к руководству. Когда мы используем /bin/pwd, мы вызываем двоичную версию этой команды. И оболочка, и двоичная версия команды печатают текущий рабочий каталог, хотя двоичная версия имеет больше возможностей.

7. Выведите все местоположения, содержащие исполняемый файл с именем pwd.

avi@tecmint:~$ type -a pwd

pwd is a shell builtin
pwd is /bin/pwd

8. Сохраните значение команды «pwd» в переменной (скажем, a) и распечатайте ее значение из переменной (важно для сценариев оболочки). перспектива).

avi@tecmint:~$ a=$(pwd)
avi@tecmint:~$ echo "Current working directory is : $a"

Current working directory is : /home/avi

В качестве альтернативы мы можем использовать printf в приведенном выше примере.

9. Измените текущий рабочий каталог на любой другой (скажем, /home) и отобразите его в командной строке. Выполните команду (скажем, «ls»), чтобы проверить, все ли в порядке.

avi@tecmint:~$ cd /home
avi@tecmint:~$ PS1='$pwd> '		[Notice single quotes in the example]
> ls

10. Установите многострочную командную строку (скажите что-то вроде ниже).

/home
123#Hello#!

А затем выполните команду (скажем, ls), чтобы проверить, все ли в порядке.

avi@tecmint:~$ PS1='
> $PWD
123#Hello#!
'

/home
123#Hello#!

11. Проверьте текущий и предыдущий рабочий каталог за один раз!

avi@tecmint:~$ echo “$PWD $OLDPWD”

/home /home/avi

12. Каков абсолютный путь (начиная с /) двоичного файла pwd.

/bin/pwd 

13. Каков абсолютный путь (начиная с /) к исходному файлу pwd.

/usr/include/pwd.h 

14. Распечатайте абсолютный путь (начиная с /) к файлу страниц руководства pwd.

/usr/share/man/man1/pwd.1.gz

15. Напишите сценарий оболочки, анализирующий текущий каталог (скажем, tecmint) в вашем домашнем каталоге. Если вы находитесь в каталоге tecmint, он выведет «Ну! Вы находитесь в каталоге tecmint », а затем напечатайте «Good Bye», иначе создайте каталог tecmint в своем домашнем каталоге и попросите вас cd к этому.

Давайте сначала создадим каталог «tecmint», в нем создадим следующий файл сценария оболочки с именем «pwd.sh».

avi@tecmint:~$ mkdir tecmint
avi@tecmint:~$ cd tecmint
avi@tecmint:~$ nano pwd.sh

Затем добавьте следующий скрипт в файл pwd.sh.

#!/bin/bash

x="$(pwd)"
if [ "$x" == "/home/$USER/tecmint" ]
then
     {
      echo "Well you are in tecmint directory"
      echo "Good Bye"
     }
else
     {
      mkdir /home/$USER/tecmint
      echo "Created Directory tecmint you may now cd to it"
     }
fi

Дайте разрешение на выполнение и запустите его.

avi@tecmint:~$ chmod 755 pwd.sh
avi@tecmint:~$ ./pwd.sh

Well you are in tecmint directory
Good Bye

Заключение

pwd — одна из самых простых, но самых популярных и широко используемых команд. Хорошая команда над pwd — это основа использования терминала Linux. Это все на данный момент. Скоро я снова буду здесь с еще одной интересной статьей, а до тех пор следите за обновлениями и будьте на связи с Tecmint.




Все права защищены. © Linux-Console.net • 2019-2024