UNPKG

2.86 kBMarkdownView Raw
1cd
2===
3
4切换用户当前工作目录。
5
6## 概要
7
8```shell
9cd [-L|[-P [-e]]] [dir]
10```
11
12## 主要用途
13
14- 切换工作目录至`dir`。其中`dir`的表示法可以是绝对路径或相对路径。
15- 若参数`dir`省略,则默认为使用者的shell变量`HOME`
16- 如果`dir`指定为`~`时表示为使用者的shell变量`HOME``.`表示当前目录,`..`表示当前目录的上一级目录。
17- 环境变量`CDPATH`是由冒号分割的一到多个目录,你可以将常去的目录的上一级加入到`CDPATH`以便方便访问它们;如果`dir``/`开头那么`CDPATH`不会被使用。
18- `shopt`选项`cdable_vars`打开时,如果`dir``CDPATH`及当前目录下均不存在,那么会把它当作变量,读取它的值作为要进入的目录。
19
20## 参数
21
22dir(可选):指定要切换到的目录。
23
24## 选项
25
26```shell
27-L (默认值)如果要切换到的目标目录是一个符号连接,那么切换到符号连接的目录。
28-P 如果要切换到的目标目录是一个符号连接,那么切换到它指向的物理位置目录。
29- 当前工作目录将被切换到环境变量OLDPWD所表示的目录,也就是前一个工作目录。
30```
31
32## 返回值
33
34返回状态为成功除非无法进入指定的目录。
35
36## 例子
37
38```shell
39cd # 进入用户主目录;
40cd / # 进入根目录
41cd ~ # 进入用户主目录;
42cd .. # 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);
43cd ../.. # 返回上两级目录;
44cd !$ # 把上个命令的参数作为cd参数使用。
45```
46
47关于切换到上一个工作目录的说明
48
49```shell
50cd -
51# 命令会首先显示要切换到的目标目录,然后再进入。
52cd ${OLDPWD}
53# 命令会直接切换到上一个工作目录。
54```
55
56关于`CDPATH`
57
58```shell
59# 设置桌面文件夹作为CDPATH的值。
60CDPATH='~/Desktop'
61# 假设我们接下来要演示涉及到的路径~和~/Desktop下没有test3文件夹,现在新建它们。
62mkdir ~/test3
63mkdir ~/Desktop/test3
64# 进入~目录。
65cd ~
66# 进入test3目录。
67cd test3
68# 执行后显示~/Desktop/test3并进入该目录,而不是~目录的test3目录。
69# 如果CDPATH存在值,那么优先在CDPATH中查找并进入第一个匹配成功的,如果全部失败那么最后尝试当前目录。
70```
71
72关于`cdable_vars`
73
74```shell
75# 打开选项。
76shopt -s cdable_vars
77# 假设当前路径以及CDPATH没有名为new_var的目录。
78new_var='~/Desktop'
79# 尝试进入。
80cd new_var
81# 关闭选项。
82shopt -u cdable_vars
83```
84
85### 注意
86
871. 该命令是bash内建命令,相关的帮助信息请查看`help`命令。
88
892. 建议您在编写脚本的过程中如有必要使用`cd`命令时,请增加必要的注释以用于提醒阅读者当前工作目录,以免出现诸如`找不到文件`这类问题的发生。
90
91