【linux命令讲解大全】100. Linux常用文件传输命令详解

2024-03-02 13:47:23 浏览数 (1)

cd

切换用户当前工作目录。

概要

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

主要用途

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

参数

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

选项

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

返回值

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

例子

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

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

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

关于 CDPATH

设置桌面文件夹作为 CDPATH 的值。

代码语言:javascript复制
CDPATH='~/Desktop'

假设我们接下来要演示涉及到的路径 ~~/Desktop 下没有 test3 文件夹,现在新建它们。

代码语言:javascript复制
mkdir ~/test3
mkdir ~/Desktop/test3

进入 ~ 目录。

代码语言:javascript复制
cd ~

进入 test3 目录。

代码语言:javascript复制
cd test3

执行后显示 ~/Desktop/test3 并进入该目录,而不是 ~ 目录的 test3 目录。如果 CDPATH 存在值,那么优先在 CDPATH 中查找并进入第一个匹配成功的,如果全部失败那么最后尝试当前目录。

关于 cdable_vars

打开选项。

代码语言:javascript复制
shopt -s cdable_vars

假设当前路径以及 CDPATH 没有名为 new_var 的目录。

代码语言:javascript复制
new_var='~/Desktop'

尝试进入。

代码语言:javascript复制
cd new_var

关闭选项。

代码语言:javascript复制
shopt -u cdable_vars

注意

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

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

0 人点赞