Linux 【03-pwd命令超详细教程】

Linux pwd 命令 超详细教程

一、命令作用

pwd = print working directory ,作用:打印当前所在的工作目录路径

登录终端、切换文件夹后,用它查看自己当前处在系统哪个目录下。


二、基础语法

bash 复制代码
pwd [选项]

权限:所有用户均可使用,无权限限制。


三、常用参数(Linux 主流选项)

1. 无参数(最常用)

直接执行 pwd,输出当前绝对路径

bash 复制代码
pwd
# 示例输出:/home/ubuntu

2. -L(--logical)逻辑路径(默认行为)

显示逻辑路径 ,如果目录是软链接(符号链接) ,输出链接指向的原路径别名,而非真实物理路径。

多数系统 pwd 默认就是 -L 模式。

bash 复制代码
pwd -L

3. -P(--physical)物理路径

不跟随软链接 ,显示目录对应的真实物理绝对路径

场景:目录被软链接指向其他位置时,查看真实目录。

bash 复制代码
pwd -P

4. --help 帮助文档

查看命令帮助、参数说明。

bash 复制代码
pwd --help

5. --version 查看版本

查看 pwd 命令版本信息。

bash 复制代码
pwd --version

四、核心示例(实操演示)

示例1:基础使用(普通目录)

bash 复制代码
# 进入 /usr 目录
cd /usr
# 查看当前路径
pwd
# 输出:/usr

示例2:区分 -L-P(软链接场景,重点)

  1. 创建测试目录 + 软链接
bash 复制代码
mkdir /tmp/real_dir          # 真实目录
ln -s /tmp/real_dir /tmp/link_dir  # 创建软链接 link_dir
  1. 进入软链接目录
bash 复制代码
cd /tmp/link_dir
  1. 分别执行参数对比
bash 复制代码
pwd        # 默认 -L,输出:/tmp/link_dir(链接名)
pwd -L     # 逻辑路径:/tmp/link_dir
pwd -P     # 物理真实路径:/tmp/real_dir

总结:

  • -L:你怎么进入的,就显示什么路径(跟随链接)
  • -P:显示文件实际存放的真实路径(穿透链接)

示例3:家目录 ~ 下使用

~ 代表当前用户家目录,cd ~ 回到家目录:

bash 复制代码
cd ~
pwd
# 普通用户输出:/home/用户名
# root 用户输出:/root

五、关键知识点

1. 绝对路径 vs 相对路径

  • 绝对路径 :从根目录 / 开始的完整路径(pwd 永远输出绝对路径)
    例:/home/ubuntu/etc
  • 相对路径 :相对于当前目录 的路径,不以 / 开头
    例:./(当前目录)、../(上一级目录)

2. 特殊目录符号

  • .当前目录
  • ..上一级目录
    结合 cd + pwd 练习:
bash 复制代码
cd /etc/systemd
pwd          # /etc/systemd
cd ..
pwd          # /etc
cd ./
pwd          # /etc

3. 常见使用场景

  1. 迷路时:不知道自己在哪个文件夹,执行 pwd 定位;
  2. 脚本编写:Shell 脚本中获取当前脚本所在目录;
  3. 软链接排查:用 pwd -P 找真实目录;
  4. 远程服务器:SSH 登录后快速确认工作路径。

六、补充小技巧

  1. Shell 内置命令

    pwdShell 内置命令(不是独立外部程序),优先级高于系统命令,所有 Linux 发行版行为一致。

  2. 搭配 cd 组合使用(日常高频)

bash 复制代码
# 一步步切换并查看路径
cd /var/log
pwd
cd ../run
pwd
  1. 退出目录后路径变化
bash 复制代码
cd /root
pwd
cd -   # 快速回到上一次所在目录
pwd

七、常见问题

  1. 执行 pwd 提示 No such file or directory

    原因:当前目录已被删除 (目录被别人删掉,但你还停留在里面)。

    解决:cd 到一个正常存在的目录即可。

  2. root 和普通用户 pwd 结果不同

    root 家目录:/root

    普通用户家目录:/home/用户名,属于正常现象。

相关推荐
FoldWinCard9 小时前
D5 Linux 网络及端口命令
linux·运维·服务器
零涂毕业设计10 小时前
毕业设计模块开发-OLED显示屏(IIC协议0.96寸)STM32 ESP32 FPGA Linux驱动免费分享
linux·stm32·单片机·嵌入式·esp32·fpga·oled
tedcloud12310 小时前
OmniRoute怎么部署?开源AI模型路由平台Linux部署教程
linux·服务器·人工智能·开源·音视频
霸道流氓气质10 小时前
KMS 密钥管理服务(Key Management Service)原理与实践
linux·服务器·数据库
SakitamaX10 小时前
LVS(Linux Virtual Server)概念详解
linux·运维·lvs
小张同学a.10 小时前
Linux系统管理
linux·运维
阿龙的工作记录11 小时前
深入理解Linux设备驱动模型
linux·嵌入式硬件·工作记录
代码村新手11 小时前
Linux的基本指令
linux·运维·服务器
hkj880812 小时前
Ubuntu 切换java版本
java·linux·ubuntu
撩得Android一次心动13 小时前
Linux编程笔记3【个人用】
linux·笔记