Linux常用命令学习笔记:pwd

1. 命令概述

  • 命令名称pwd(英文全拼:print working directory)
  • 核心功能显示当前工作目录的绝对路径
  • 主要用途:查看当前所在的目录位置
  • 特点:简单易用,无参数,直接显示当前目录路径

2. 语法格式

pwd [选项]

3. 常用选项

选项说明
-L显示逻辑路径(默认)
-P显示物理路径,不跟随符号链接
--help显示帮助信息
--version显示版本信息

4. 基本操作

(1) 基本使用

# 显示当前工作目录
pwd

# 显示当前工作目录的物理路径
pwd -P

# 显示当前工作目录的逻辑路径
pwd -L

# 显示帮助信息
pwd --help

# 显示版本信息
pwd --version

(2) 符号链接处理

# 创建符号链接
ln -s /path/to/target linkname

# 切换到符号链接
cd linkname

# 显示逻辑路径(符号链接路径)
pwd -L

# 显示物理路径(实际路径)
pwd -P

5. 常用实例详解

(1) 基本使用示例

# 显示当前工作目录
pwd
# 输出:/home/user

# 显示当前工作目录的物理路径
pwd -P
# 输出:/home/user

# 显示当前工作目录的逻辑路径
pwd -L
# 输出:/home/user

# 切换到其他目录后显示
cd /etc
pwd
# 输出:/etc

# 切换到根目录后显示
cd /
pwd
# 输出:/

# 切换到用户主目录后显示
cd ~
pwd
# 输出:/home/user

(2) 符号链接处理示例

# 创建符号链接
ln -s /etc link_to_etc

# 切换到符号链接
cd link_to_etc

# 显示逻辑路径(符号链接路径)
pwd -L
# 输出:/home/user/link_to_etc

# 显示物理路径(实际路径)
pwd -P
# 输出:/etc

# 显示默认路径(逻辑路径)
pwd
# 输出:/home/user/link_to_etc

# 切换到实际目录
cd /etc

# 显示当前目录
pwd
# 输出:/etc

# 显示物理路径
pwd -P
# 输出:/etc

# 显示逻辑路径
pwd -L
# 输出:/etc

(3) 组合使用示例

# 在脚本中使用pwd
#!/bin/bash
CURRENT_DIR=$(pwd)
echo "当前目录:$CURRENT_DIR"

# 在命令中使用pwd
cd $(pwd)/subdir

# 保存当前目录
SAVE_DIR=$(pwd)
cd /tmp
# 执行操作
cd "$SAVE_DIR"

# 显示当前目录的父目录
cd $(dirname $(pwd))

# 显示当前目录的绝对路径
echo "当前目录:$(pwd)"

# 显示当前目录的物理路径
echo "物理路径:$(pwd -P)"

# 显示当前目录的逻辑路径
echo "逻辑路径:$(pwd -L)"

6. 实际应用场景

场景一:脚本中的目录操作

#!/bin/bash

# 保存当前目录
ORIGINAL_DIR=$(pwd)

# 切换到工作目录
cd /path/to/workdir

# 执行操作
ls -l

# 返回原目录
cd "$ORIGINAL_DIR"

# 或者使用pushd/popd
pushd /path/to/workdir
ls -l
popd

场景二:日志记录

# 记录当前目录到日志
echo "$(date): 当前目录 $(pwd)" >> /var/log/myapp.log

# 记录操作日志
echo "$(date): 在目录 $(pwd) 执行了操作" >> /var/log/operation.log

# 记录错误日志
echo "$(date): 在目录 $(pwd) 发生错误" >> /var/log/error.log

# 记录调试信息
echo "DEBUG: 当前目录 $(pwd)" >> /var/log/debug.log

场景三:文件路径操作

# 获取当前目录的绝对路径
CURRENT_DIR=$(pwd)

# 获取文件的绝对路径
FILE_PATH="$CURRENT_DIR/file.txt"

# 获取目录的绝对路径
DIR_PATH="$CURRENT_DIR/subdir"

# 获取父目录的绝对路径
PARENT_DIR=$(dirname "$CURRENT_DIR")

# 获取当前目录的目录名
DIR_NAME=$(basename "$CURRENT_DIR")

# 获取当前目录的物理路径
PHYSICAL_PATH=$(pwd -P)

# 获取当前目录的逻辑路径
LOGICAL_PATH=$(pwd -L)

场景四:系统管理

# 检查当前目录是否为根目录
if [ "$(pwd)" = "/" ]; then
    echo "当前在根目录"
else
    echo "当前不在根目录"
fi

# 检查当前目录是否为用户主目录
if [ "$(pwd)" = "$HOME" ]; then
    echo "当前在用户主目录"
else
    echo "当前不在用户主目录"
fi

# 检查当前目录是否为指定目录
if [ "$(pwd)" = "/etc" ]; then
    echo "当前在/etc目录"
else
    echo "当前不在/etc目录"
fi

# 检查当前目录是否包含指定字符串
if [[ "$(pwd)" == *"home"* ]]; then
    echo "当前目录包含home"
else
    echo "当前目录不包含home"
fi

7. 与其他命令的区别

命令特点适用场景
pwd显示当前工作目录查看当前目录路径
cd切换当前工作目录改变当前目录
ls列出目录内容查看文件列表
dirs显示目录栈内容查看目录栈
pushd压入目录到栈将目录添加到目录栈
popd弹出目录从栈从目录栈中移除目录

8. 注意事项

  1. 符号链接:默认显示逻辑路径,使用 -P选项显示物理路径
  2. 权限问题:普通用户只能查看有权限的目录
  3. 环境变量:可以使用 $PWD环境变量获取当前目录
  4. 脚本中使用:在脚本中使用 $(pwd)获取当前目录
  5. 相对路径pwd总是显示绝对路径

9. 常见问题解决

(1) 权限不足

# 错误:权限不足
cd /root
pwd  # 报错:Permission denied

# 正确:使用sudo
sudo pwd

# 正确:切换到有权限的目录
cd /tmp
pwd

# 正确:使用当前用户的主目录
cd ~
pwd

# 正确:使用公共目录
cd /var/log
pwd

(2) 目录不存在

# 错误:目录不存在
cd /nonexistent
pwd  # 报错:No such file or directory

# 正确:检查目录是否存在
ls -d /path/to/dir

# 正确:使用存在的目录
cd /home
pwd

# 正确:使用当前目录
pwd

# 正确:使用根目录
cd /
pwd

(3) 符号链接问题

# 错误:符号链接指向不存在的目录
ln -s /nonexistent broken_link
cd broken_link
pwd  # 报错:No such file or directory

# 正确:检查符号链接
ls -l linkname

# 正确:修复符号链接
ln -sf /path/to/target linkname

# 正确:使用物理路径
pwd -P

# 正确:使用绝对路径
cd /path/to/target
pwd

(4) 选项错误

# 错误:选项错误
pwd -x  # 报错:无效选项

# 正确:使用支持的选项
pwd -L
pwd -P

# 错误:缺少参数
pwd --  # 报错:缺少参数

# 正确:使用正确的选项
pwd --help
pwd --version

# 错误:选项冲突
pwd -L -P  # 可能报错

# 正确:使用不冲突的选项
pwd -L
pwd -P

核心要点总结

  • pwd是显示当前工作目录的命令,简单易用
  • 常用选项-L(显示逻辑路径)、-P(显示物理路径)
  • 实际应用:脚本中的目录操作、日志记录、文件路径操作、系统管理
  • 注意事项:默认显示逻辑路径,使用 -P选项显示物理路径

pwd命令是Linux系统目录管理的基础工具,熟练掌握可以大大提高系统管理效率。


作 者:南烛
链 接:https://www.itnotes.top/archives/475
来 源:IT笔记
文章版权归作者所有,转载请注明出处!


上一篇
下一篇