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”未指定任何选项时b>”,它会自动考虑选项“-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 保持联系。