Linux命令完全指南

Linux cd命令使用详解

cd命令 将当前的工作目录切换至DIRDIR可以表示为绝对路径或者相当路径,如果没有指定DIR的值,则默认切换的用户的home目录。

另外~也将扩展为当前用户的home目录, .表示当前目录,..表示当前目录的父目录。

可以定义CDPATH变量来控制查找DIR的目录,在CDPATH中的目录使用冒号(:)进行分割,如果不含有任何目录的话,则表示是当前目录,如果DIR/开始,则CDPATH不使用。

如果没有找到目录,并且设置了shell选项cdable_vars,则它的值将作为一个变量名,如果这个变量有一个值得的话,这个值将会作为DIR

当仅实用”-“一个选项时,当前工作目录将被切换到环境变量”OLDPWD”所表示的目录。

用法

1
2
cd [-L|[-P [-e]]] [DIR]
cd -

选项

选项说明
  • | 当前工作目录将被切换到环境变量OLDPWD所表示的目录,也就是前一个工作目录
    -L | 强制跟随符号链接(默认的)
    -P | 使用物理目录结构而不跟随符号链接
    -e | 如果应用了-P,并且切换工作目录不成功,那么退出时返回一个非0的退出状态

默认状态下,是跟随符号链接的,同指定了-L选项

退出

如果目录成功切换并且当使用了-P, $PWD成功的设置,则返会0,否则返回非0值

主要用途

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

实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 跳转到Home
cd
# or
cd ~

# 跳转到 /usr/bin
cd /usr/bin

# 跳转到上层目录
cd ..

cd - # 返回进入此目录之前所在的目录;
cd .. # 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);
cd ../.. # 返回上两级目录;
cd !$ # 把上个命令的参数作为cd参数使用。

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

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

关于CDPATH

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

关于cdable_vars

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

注意

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