cd
切换用户当前工作目录。
概要
cd [-L|[-P [-e]]] [dir]
主要用途
切换工作目录至 dir
。其中 dir
的表示法可以是绝对路径或相对路径。若参数 dir
省略,则默认为使用者的 shell 变量 HOME
。如果 dir
指定为 ~
时表示为使用者的 shell 变量 HOME
,.
表示当前目录,..
表示当前目录的上一级目录。环境变量 CDPATH
是由冒号分割的一到多个目录,你可以将常去的目录的上一级加入到 CDPATH
以便方便访问它们;如果 dir
以 /
开头那么 CDPATH
不会被使用。当 shopt
选项 cdable_vars
打开时,如果 dir
在 CDPATH
及当前目录下均不存在,那么会把它当作变量,读取它的值作为要进入的目录。
参数
dir
(可选):指定要切换到的目录。
选项
-L
(默认值):如果要切换到的目标目录是一个符号连接,那么切换到符号连接的目录。-P
:如果要切换到的目标目录是一个符号连接,那么切换到它指向的物理位置目录。-
:当前工作目录将被切换到环境变量OLDPWD
所表示的目录,也就是前一个工作目录。
返回值
返回状态为成功除非无法进入指定的目录。
例子
cd
:进入用户主目录;cd /
:进入根目录;cd ~
:进入用户主目录;cd ..
:返回上级目录(若当前目录为/
,则执行完后还在/
;..
为上级目录的意思);cd ../..
:返回上两级目录;cd !$
:把上个命令的参数作为cd
参数使用。
关于切换到上一个工作目录的说明
cd -
:命令会首先显示要切换到的目标目录,然后再进入。cd ${OLDPWD}
:命令会直接切换到上一个工作目录。
关于 CDPATH
设置桌面文件夹作为 CDPATH
的值。
CDPATH='~/Desktop'
假设我们接下来要演示涉及到的路径 ~
和 ~/Desktop
下没有 test3
文件夹,现在新建它们。
mkdir ~/test3
mkdir ~/Desktop/test3
进入 ~
目录。
cd ~
进入 test3
目录。
cd test3
执行后显示 ~/Desktop/test3
并进入该目录,而不是 ~
目录的 test3
目录。如果 CDPATH
存在值,那么优先在 CDPATH
中查找并进入第一个匹配成功的,如果全部失败那么最后尝试当前目录。
关于 cdable_vars
打开选项。
代码语言:javascript复制shopt -s cdable_vars
假设当前路径以及 CDPATH
没有名为 new_var
的目录。
new_var='~/Desktop'
尝试进入。
代码语言:javascript复制cd new_var
关闭选项。
代码语言:javascript复制shopt -u cdable_vars
注意
该命令是 bash 内建命令,相关的帮助信息请查看 help
命令。
建议您在编写脚本的过程中如有必要使用 cd
命令时,请增加必要的注释以用于提醒阅读者当前工作目录,以免出现诸如找不到文件这类问题的发生。