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/用户名,属于正常现象。

相关推荐
三言老师9 小时前
秘诀-如何远程SSN访问家里的八台电脑(frp 实操方案)
linux·运维·ssh
举手11 小时前
Dispatcher模块剖析
linux·c++
allforgood12 小时前
运行容器
linux
Light_It13 小时前
Linux 内核参数 pci-stub.ids=
linux·kernel
RisunJan13 小时前
Linux命令-scriptreplay(终端会话回放)
linux·运维·chrome
spencer_tseng13 小时前
[kylin & linux] install docker
linux·docker·kylin
x²+(y-√³x²)²=114 小时前
Linux打包文件到Windows,文件/文件类型丢失
linux·运维·windows
柒号华仔15 小时前
「速通Shell」聚砖成墙,Shell函数封装之道
linux·ssh·bash
程序员与背包客_CoderZ15 小时前
Linux D-Bus通信协议详解:从入门到C/C++编码实战
linux·服务器·c语言·c++·嵌入式硬件·嵌入式软件·dbus
Android系统攻城狮15 小时前
Linux PipeWire深度解析之pw_properties_iterate调用流程与实战(六十五)
linux·运维·服务器·音频进阶·pipewire音频进阶