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