当前位置: 首页 > ops >正文

(二)文件管理-基础命令-cd命令的使用

文章目录

  • 1. 命令格式
  • 2. 基本用法
    • 2.1 切换到当前用户的家目录
    • 2.2 切换到指定目录(绝对路径)
    • 2.3 切换到指定目录(相对路径)
    • 2.4 切换到上一个工作目录
  • 3. 高级用法
    • 3.1 使用 $OLDPWD 环境变量
    • 3.2 使用 Tab 键自动补全
    • 3.3 CDPATH 环境变量
  • 4.注意事项
    • 4.1 空格和特殊字符
    • 4.2 权限问题
    • 4.3 不存在路径
    • 4.4 内建命令

1. 命令格式

cd [-L|-P] [dir]
  • -L: (默认行为) 如果 dir 是一个符号链接,则切换到该符号链接指向的目录
  • -P: (Physical) 如果 dir 是一个符号链接,则切换到该符号链接本身的物理位置,而不是它指向的位置。此选项会解析所有符号链接,使你进入一个“物理”绝对路径
  • [dir]: 目标目录。它可以是一个绝对路径(如 /usr/local/bin)、一个相对路径(如 …/Documents)或一些特殊的符号(如 ~, -)。如果省略 [dir],则默认为当前用户的家目录(~)

2. 基本用法

2.1 切换到当前用户的家目录

cd
# 或者
cd ~

2.2 切换到指定目录(绝对路径)

cd /usr/share/doc

2.3 切换到指定目录(相对路径)

cd Documents/Projects  # 进入当前目录下的 Documents/Projects 文件夹
cd ..                 # 进入上一级目录 (父目录)
cd ../Music           # 进入与当前目录同级的 Music 目录

2.4 切换到上一个工作目录

cd -
# 示例:
/home/user/Documents$ cd /var/log
/var/log$ cd -
/home/user/Documents$

3. 高级用法

3.1 使用 $OLDPWD 环境变量

cd - 的原理其实就是切换到了 $OLDPWD 环境变量所存储的路径。你可以直接使用这个变量

echo $OLDPWD  # 查看上一个目录的路径
cd "$OLDPWD"  # 效果同 `cd -`

3.2 使用 Tab 键自动补全

这不是 cd 命令本身的特性,而是 Shell(如 Bash)提供的功能。输入路径的一部分,然后按 Tab 键,Shell 会自动补全路径或列出可能的选择,能有效防止输错路径

3.3 CDPATH 环境变量

这是一个非常有用但常被忽略的功能。你可以设置一个冒号分隔的目录列表,当你使用相对路径时,cd 命令会优先在这些目录中查找

# 在 ~/.bashrc 文件中添加一行
export CDPATH=".:~:~/Work"  # 先在当前目录(.)找,然后在家目录(~)找,最后在 ~/Work 找# 重新加载配置
source ~/.bashrc# 现在,无论你在哪个目录下,都可以直接输入
cd project-alpha
# 如果当前目录没有 project-alpha,它会自动去 ~/Work 目录下找。
# 如果 ~/Work/project-alpha 存在,你就会直接进入那个目录。

4.注意事项

4.1 空格和特殊字符

如果目录名包含空格或特殊字符(如 !, $, *, 空格),必须用引号将其括起来,或者使用反斜杠 \ 进行转义

cd "My Projects"   # 正确
cd My\ Projects    # 正确
cd My Projects     # 错误!这会被解析为试图进入 "My" 和 "Projects" 两个目录

4.2 权限问题

你必须有对目标目录的 执行 (x) 权限 才能进入它。只有读 ® 权限是不够的

ls -ld /root        # 通常显示为 drwx------,意味着只有 root 用户能进入
cd /root            # 普通用户会提示 "Permission denied"

4.3 不存在路径

如果路径不存在,cd 会报错 No such file or directory

4.4 内建命令

cd 是 Shell 内建命令, 它不是磁盘上的一个独立程序,而是 Shell 的一部分。因此 which cd 通常会没有输出或显示为 shell builtin。它的行为可能因 Shell 的不同而有细微差别。

http://www.xdnf.cn/news/19782.html

相关文章:

  • 中州养老:资源添加功能
  • gitlab推送失败,内存不足的处理
  • 深入浅出Spring IoC与DI:设计思想、实现方式与反射技术详解
  • Excel 电影名匹配图片路径教程:自动查找并写入系统全路径
  • PostgreSQL 中唯一索引的工作原理
  • 分布式AI算力系统番外篇-----超体的现实《星核》
  • Vue基础知识-重要的内置关系:vc实例.__proto__.__proto__ === Vue.prototype
  • 股指期货可以通过移仓长线持有吗?
  • AppInventor2 如何自定义包名?
  • 华为云云原生架构赋能:大腾智能加速业务创新步伐
  • 【深度学习新浪潮】视觉大模型在预训练方面有哪些关键进展?
  • 鸿蒙UI开发实战:解决布局错乱与响应异常
  • 企业实用——MySQL的备份详解
  • 基于机器学习的Backtrader波动性预测与管理
  • Kubernetes ConfigMap 更新完整指南:原理、方法与最佳实践
  • PyTorch实战——ResNet与DenseNet详解
  • Huggingface终于没忍住,OpenCSG坚持开源开放
  • flume拓扑结构详解:从简单串联到复杂聚合的完整指南
  • Linux 的信号 和 Qt 的信号
  • IO_HW_9_3
  • MySQL数据库恢复步骤(基于全量备份和binlog)
  • 揭秘ArrowJava核心:IndexSorter高效排序设计
  • Cookie、Session、登录
  • 一个工业小白眼中的 IT/OT 融合真相:数字化工厂的第一课
  • SQL Server核心架构深度解析
  • AlexNet:计算机视觉的革命性之作
  • PostgreSQL性能调优-优化你的数据库服务器
  • JVM调优与常见参数(如 -Xms、-Xmx、-XX:+PrintGCDetails) 的必会知识点汇总
  • 【学Python自动化】 9.1 Python 与 Rust 类机制对比学习笔记
  • 【WPS】WPSPPT 快速抠背景