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