Linux 命令行完全指南:pwd 如何掌控目录路径全局

pwd 是 "print working directory" 的缩写,用于显示当前 shell 会话的工作目录的绝对路径。在日常命令行操作中,我们经常需要在不同目录间切换,使用 pwd 可以快速确认当前所在的位置。语法格式如下:

复制
[root@localhost ~]# pwd [-L|-P]1.

选项

                说明

-L

显示逻辑路径(默认行为),即使当前目录是软链接,也会显示链接本身的路径。该选项会读取 PWD 环境变量的值。

-P

显示物理路径,若当前目录是软链接,则会解析到实际的目标目录(即源文件路径)。

案例演示

(1) 不带选项的基本用法

复制
# 初始状态下,当前用户为root,家目录为/root [root@localhost ~]# pwd /root # 切换到/etc/init.d目录 [root@localhost ~]# cd /etc/init.d/ # 使用pwd确认当前目录 [root@localhost init.d]# pwd /etc/init.d1.2.3.4.5.6.7.8.9.10.

(2) -L 选项示例:显示逻辑路径,假设系统中存在如下软链接:

复制
# /etc/init.d 是指向 /etc/rc.d/init.d 的软链接 [root@localhost ~]# ll /etc/init.d lrwxrwxrwx. 1 root root 11 Jan 20 18:55 /etc/init.d -> rc.d/init.d1.2.3.

当我们进入这个软链接目录后:

复制
# 进入软链接目录 [root@localhost ~]# cd /etc/init.d # 使用-L选项(或默认不指定选项) [root@localhost init.d]# pwd -L /etc/init.d # 直接echo环境变量PWD,结果相同 [root@localhost init.d]# echo $PWD /etc/init.d1.2.3.4.5.6.7.8.9.10.

(3) -P 选项示例:显示物理路径

复制
# 使用-P选项解析软链接,显示实际目标目录 [root@localhost init.d]# pwd -P /etc/rc.d/init.d # 获取环境变量的PWD对应的值,即为echo $PWD的结果 [root@localhost init.d]# pwd -L /etc/init.d [root@localhost init.d]# echo $PWD /etc/init.d # 显示链接对应的源文件的目录路径 [root@localhost init.d]# pwd -P /etc/rc.d/init.d1.2.3.4.5.6.7.8.9.10.11.12.13.
注意事项

(1) 检查软链接的正确方式:查看目录是否为软链接时,不要在目标目录后加 /。例如:

复制
# 正确(显示软链接信息) [root@localhost ~]# ll /etc/init.d lrwxrwxrwx. 1 root root 11 Jan 20 18:55 /etc/init.d -> rc.d/init.d # 错误(会直接解析软链接,显示目标目录内容) [root@localhost ~]# ll /etc/init.d/ total 120 -rwxr-xr-x. 1 root root 1647 Aug 12 2022 abrt-ccpp -rwxr-xr-x. 1 root root 1645 Aug 12 2022 abrt-oops ...1.2.3.4.5.6.7.8.9.10.

(2) 环境变量与 pwd 的关系:

PWD 环境变量存储的是当前工作目录的逻辑路径OLDPWD 环境变量存储的是上一次的工作目录(可通过 cd - 快速返回)常见应用场景在编写脚本时,使用 pwd -P 确保获取真实路径当目录结构复杂或存在多层软链接时,使用 pwd -P 理清实际位置日常操作中,直接使用 pwd 查看当前所在目录即可

THE END