cd

切换用户当前工作目录。

概要

1cd [-L|[-P [-e]]] [dir]

主要用途

  • 切换工作目录至dir。其中dir的表示法可以是绝对路径或相对路径。
  • 若参数dir省略,则默认为使用者的shell变量HOME
  • 如果dir指定为~时表示为使用者的shell变量HOME.表示当前目录,..表示当前目录的上一级目录。
  • 环境变量CDPATH是由冒号分割的一到多个目录,你可以将常去的目录的上一级加入到CDPATH以便方便访问它们;如果dir/开头那么CDPATH不会被使用。
  • shopt选项cdable_vars打开时,如果dirCDPATH及当前目录下均不存在,那么会把它当作变量,读取它的值作为要进入的目录。

参数

dir(可选):指定要切换到的目录。

选项

1-L (默认值)如果要切换到的目标目录是一个符号连接,那么切换到符号连接的目录。
2-P 如果要切换到的目标目录是一个符号连接,那么切换到它指向的物理位置目录。
3-  当前工作目录将被切换到环境变量OLDPWD所表示的目录,也就是前一个工作目录。

返回值

返回状态为成功除非无法进入指定的目录。

例子

1cd    # 进入用户主目录;
2cd /  # 进入根目录
3cd ~  # 进入用户主目录;
4cd ..  # 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);
5cd ../..  # 返回上两级目录;
6cd !$  # 把上个命令的参数作为cd参数使用。

关于切换到上一个工作目录的说明

1cd -
2# 命令会首先显示要切换到的目标目录,然后再进入。
3cd ${OLDPWD}
4# 命令会直接切换到上一个工作目录。

关于CDPATH

 1# 设置桌面文件夹作为CDPATH的值。
 2CDPATH='~/Desktop'
 3# 假设我们接下来要演示涉及到的路径~和~/Desktop下没有test3文件夹,现在新建它们。
 4mkdir ~/test3
 5mkdir ~/Desktop/test3
 6# 进入~目录。
 7cd ~
 8# 进入test3目录。
 9cd test3
10# 执行后显示~/Desktop/test3并进入该目录,而不是~目录的test3目录。
11# 如果CDPATH存在值,那么优先在CDPATH中查找并进入第一个匹配成功的,如果全部失败那么最后尝试当前目录。

关于cdable_vars

1# 打开选项。
2shopt -s cdable_vars
3# 假设当前路径以及CDPATH没有名为new_var的目录。
4new_var='~/Desktop'
5# 尝试进入。
6cd new_var
7# 关闭选项。
8shopt -u cdable_vars

注意

  1. 该命令是bash内建命令,相关的帮助信息请查看help命令。

  2. 建议您在编写脚本的过程中如有必要使用cd命令时,请增加必要的注释以用于提醒阅读者当前工作目录,以免出现诸如找不到文件这类问题的发生。

来源:https://github.com/jaywcjlove/linux-command

最后修改于: Wednesday, January 31, 2024
欢迎关注微信公众号,留言交流。

相关文章:

翻译: