Linux 中的 15 个 'pwd'(打印工作目录)命令示例
对于使用 Linux 命令行的用户来说,命令“ pwd ”非常有用,它可以告诉您当前所在的位置 - 在哪个目录中,从根目录 ( / ) 开始。特别是对于 Linux 新手来说,在命令行界面导航时可能会迷失在目录中,命令“ pwd ”可以帮到他们。
什么是 pwd?
' pwd ' 代表 '打印工作目录'。顾名思义,命令 ' pwd ' 打印当前工作目录或用户当前所在的目录。它打印当前目录名称以及从根目录 ( / ) 开始的完整路径。此命令内置于 shell 命令中,可用于大多数 shell - bash、Bourne shell、ksh、zsh 等。
pwd的基本语法:
# pwd [OPTION]
与 pwd 一起使用的选项
选项 | 描述 |
-L(逻辑) | 使用环境中的 PWD,即使它包含符号链接 |
-P(物理) | 避免所有符号链接 |
-帮助 | 显示此帮助并退出 |
-版本 | 输出版本信息并退出 |
如果同时使用“ -L ”和“ -P ”选项,则优先使用“ L ”选项。如果提示符下未指定任何选项,则 pwd 将避免所有符号链接,即考虑“ -P ”选项。
命令pwd的退出状态:
0 | 成功 |
非零 | 失败 |
本文旨在通过实际示例让您深入了解 Linux 命令“ pwd ”。
1.打印您当前的工作目录。
avi@example:~$ /bin/pwd /home/avi
2.创建文件夹的符号链接(例如将/var/www/html以htm形式链接到您的主目录)。移至新创建的目录并打印带有符号链接和不带有符号链接的工作目录。
在您的主目录中创建文件夹 /var/www/html 的符号链接作为 htm 并移动到该文件夹。
avi@example:~$ ln -s /var/www/html/ htm avi@example:~$ cd htm
3.即使环境包含符号链接,也打印工作目录。
avi@example:~$ /bin/pwd -L /home/avi/htm
4.通过解析所有符号链接打印实际的物理当前工作目录。
avi@example:~$ /bin/pwd -P /var/www/html
5.检查命令“ pwd ”和“ pwd -P ”的输出是否相同,即,如果运行时没有给出选项,“ pwd ”是否自动考虑选项-P 。
avi@example:~$ /bin/pwd /var/www/html
结果:从上面示例 4 和示例 5 的输出可以清楚地看出(两个结果相同),当使用命令“ pwd ”未指定任何选项时,它会自动考虑选项“ -P ”。
6.打印“pwd”命令的版本。
avi@example:~$ /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@example:~$ type -a pwd pwd is a shell builtin pwd is /bin/pwd
8.将“ pwd ”命令的值存储在变量中(例如a),并从变量中打印其值(对于 shell 脚本角度来说很重要)。
avi@example:~$ a=$(pwd) avi@example:~$ echo "Current working directory is : $a" Current working directory is : /home/avi
或者,我们可以在上面的例子中使用printf 。
9.将当前工作目录更改为任意目录(例如/home)并在命令行提示符中显示它。执行命令(例如 ' ls ')以验证一切是否正常。
avi@example:~$ cd /home avi@example:~$ PS1='$pwd> ' [Notice single quotes in the example] > ls
10.设置多行命令行提示符(如下所示)。
/home 123#Hello#!
然后执行命令(比如ls)来检查一切是否正常。
avi@example:~$ PS1=' > $PWD $ 123#Hello#! $ ' /home 123#Hello#!
11.一次性检查当前工作目录和上一个工作目录!
avi@example:~$ 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 脚本,分析您主目录中的当前目录(例如example )。如果您在目录example下,则输出“好吧!您在 example 目录中”,然后打印“再见”,否则在您的主目录下创建一个目录example并要求您cd到该目录。
让我们首先创建一个“example”目录,并在其下创建一个名为“pwd.sh”的以下 shell 脚本文件。
avi@example:~$ mkdir example avi@example:~$ cd example avi@example:~$ nano pwd.sh
接下来,将以下脚本添加到 pwd.sh 文件中。
#!/bin/bash x="$(pwd)" if [ "$x" == "/home/$USER/example" ] then { echo "Well you are in example directory" echo "Good Bye" } else { mkdir /home/$USER/example echo "Created Directory example you may now cd to it" } fi
赋予执行权限并运行。
avi@example:~$ chmod 755 pwd.sh avi@example:~$ ./pwd.sh Well you are in example directory Good Bye
结论
pwd是最简单但最流行、使用最广泛的命令之一。良好的 pwd 命令是使用 Linux 终端的基础。现在就这些。我很快会再次在这里发布另一篇有趣的文章,在此之前请继续关注并关注示例。