网站搜索

Linux 中的 15 个“pwd”(打印工作目录)命令示例


对于那些使用 Linux 命令行的人来说,命令“pwd”非常有用,它可以告诉您所在的位置 - 在哪个目录中,从根目录 (/) 开始。特别是对于 Linux 新手来说,他们在导航时可能会在命令行界面的目录中迷失方向,命令“pwd”可以拯救他们。

pwd是什么?

pwd”代表“打印工作目录”。顾名思义,命令“pwd”打印当前工作目录或简单地显示用户当前所在的目录。它打印当前目录名称以及从根目录开始的完整路径 (/)。该命令内置于 shell 命令中,可在大多数 shell 上使用 - bash、Bourne shell、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”单独表示shell内置pwd。您的 shell 可能有不同版本的 pwd。请参阅手册。当我们使用 /bin/pwd 时,我们正在调用该命令的二进制版本。 shell 和命令的二进制版本都打印当前工作目录,尽管二进制版本有更多选项。

7. 打印包含名为 pwd 的可执行文件的所有位置。

avi@tecmint:~$ type -a pwd

pwd is a shell builtin
pwd is /bin/pwd

8. 将“pwd”命令的值存储在变量中(例如a),并从变量中打印其值(对于 shell 脚本编写很重要)看法)。

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

Current working directory is : /home/avi

或者,在上面的示例中,我们可以使用 printf

9. 将当前工作目录更改为任何目录(例如 /home)并在命令行提示符中显示它。执行命令(例如“ls”)以验证一切是否OK

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

10. 设置多行命令行提示符(如下所示)。

/home
123#Hello#!

然后执行命令(例如 ls)来检查一切是否OK

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. 编写一个 shell 脚本来分析主目录中的当前目录(例如 howtoing)。如果您位于目录 howtoing 下,它会输出“Well! You are in howtoing directory ”,然后打印“Good Bye ”,否则在你的主目录下创建一个目录 howtoing 并要求你 cd 到它。

我们首先创建一个“howtoing”目录,在其下创建一个名为“pwd.sh”的 shell 脚本文件。

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 保持联系。