Go to main content

手册页部分 1:用户命令

退出打印视图

更新时间: 2022年7月27日 星期三
 
 

dirs(1)

名称

cd, chdir, pushd, popd, dirs - 更改工作目录

用法概要

/usr/bin/cd [directory]

sh

cd [argument]
chdir [argument]

csh

cd [dir]
chdir [dir]
pushd [+n | dir]
popd [+n]
dirs [-l]

ksh88、ksh

cd [-L] [-P] [arg]
cd old new

描述

/usr/bin/cd

/usr/bin/cd 实用程序仅更改 cd 实用程序上下文中的当前目录。这与 shell 的内置版本不同。/usr/bin/cd 不影响调用进程,但是可以用于确定是否可以将指定目录设置为当前目录。

sh

Bourne shell 内置 cd 将当前目录更改为 argument。shell 参数 HOME 是缺省的 argument。shell 参数 CDPATH 定义包含 argument 的目录的搜索路径。备用路径名称使用冒号 (:) 分隔。缺省路径是 <null>(指定当前目录)。当前目录是通过空路径名指定的,可以直接显示在等号之后或显示在路径列表中任何其他位置的冒号分隔符之间。如果 argument 以 ‘/’、‘.’ 或 ‘. .’ 开头,则不使用搜索路径。否则,在路径的每个目录中搜索 argument。cd 在 argument 中必须具有执行(搜索)权限。由于创建新的进程执行每个命令,如果将 cd 写为常规命令则无效;因此,它可以在 shell 内部识别。(请参见 pwd(1)、sh(1) 和 chdir(2))。

chdir 只不过是调用 cd 的另一种方式。

csh

如果未指定 dir,则 C shell 内置 cd 将 shell 参数 HOME 的值用作新的工作目录。如果 dir 指定以 ‘/’、‘.’ 或 ‘. .’ 开头的完整路径,则 dir 成为新的工作目录。如果两种情况都不适用,则 cd 尝试相对于 CDPATH shell 变量指定的路径之一查找指定的目录。CDPATH 具有与 PATH shell 变量相同的语法和相似的语义。cd 在 dir 中必须具有执行(搜索)权限。由于创建新的进程执行每个命令,如果将 cd 写为常规命令则无效;因此,它可以在 C-shell 内部识别。(请参见 pwd(1)、sh(1) 和 chdir(2))。

chdir 将 shell 的工作目录更改为目录 dir。如果未指定参数,则更改为用户的起始目录。如果 dir 是当前目录中找不到的相对路径名,则在 cdpath 变量列出的那些目录中查找该路径名。如果 dir 是其值以 / 开头的 shell 变量的名称,则更改为该值指定的目录。

pushd 将目录推送到目录栈中。没有参数时,交换顶部的两个元素。

+n

将第 n 项置于栈的顶部并使用 cd 更改到该项。

dir

将当前工作目录推送到栈中并更改为 dir。

popd 弹出目录栈并使用 cd 更改为新的顶部目录。目录栈的元素从 0 开始从上至下编号。

+n

弃置栈中的第 n 项。

dirs 列显目录栈,左边是最近的目录;列显的第一个目录即为当前目录。使用 –l 参数,输出的内容不采用缩写;禁止使用 ~ 表示法。

ksh88、ksh

Korn shell 内置 cd 命令可以为两种形式之一。在第一种形式中,它将当前目录更改为 arg。如果 arg 为 -,目录将被更改为以前的目录。shell 变量 HOME 是缺省的 arg。将环境变量 PWD 设置为当前目录。如果更改了 PWD,则还应将 OLDPWD 环境变量更改为之前的工作目录值,即调用更改目录 (cd) 之前最近的当前工作目录。shell 变量 CDPATH 定义包含 arg 的目录的搜索路径。备用路径名称使用冒号 (:) 分隔。缺省路径是 null(指定当前目录)。当前目录是通过空路径名指定的,可以直接显示在等号之后或显示在路径列表中任何其他位置的冒号分隔符之间。如果 arg 以 ‘/’、‘.’ 或 ‘. .’ 开头,则不使用搜索路径。否则,将搜索路径中每个目录的 arg。如果失败,cd 会尝试将目录更改为通过串联 PWD 值、斜杠字符和 arg 而组成的路径名。

–L

以逻辑方式处理双点 (..) 运算。在处理双点组件之前,不解析符号链接组件。

–P

以物理方式处理操作数双点。在处理双点组件之前,解析符号链接组件。

如果同时指定了 –L 和 –P 选项,则使用要调用的最后一个选项而忽略另一个选项。如果 –L 或 –P 都未指定,则按照双点逻辑处理操作数。

cd 的第二种形式在当前目录名称 PWD 中用字符串 new 替换字符串 old,并尝试更改为此新目录。

不能通过 rksh 执行 cd 命令。由于创建新的进程执行每个命令,如果将 cd 写为常规命令则无效;因此,它可以在 Korn shell 内部识别。(请参见 pwd(1)、sh(1) 和 chdir(2))。

操作数

支持下列操作数:

directory

成为新的工作目录的绝对或相对目录路径名。cd 对于相对路径名的解释取决于 CDPATH 环境变量。

输出

如果使用 CDPATH 的非空目录名,则将新工作目录的绝对路径名写入标准输出,如下所示:

"%s\n", <new directory>

否则,无输出。

环境变量

有关影响 cd 执行的以下环境变量的说明,请参见 environ(7):LANG、LC_ALL、LC_CTYPE、LC_MESSAGES 和 NLSPATH。

CDPATH

引用目录的冒号分隔的路径名列表。如果 directory 操作数不以斜杠 (/) 字符开头,并且第一个组件不是点或双点,则 cd 相对于 CDPATH 变量中指定的每个目录按照列出的顺序搜索 directory。将新工作目录设置为找到的第一个匹配的目录。如果是空字符串,而非目录路径名,则表示当前目录。如果未设置 CDPATH,则像空字符串一样对其进行处理。

HOME

未指定 directory 操作数时使用的起始目录名称。

OLDPWD

cd- 使用的前一个工作目录的路径名。

PWD

在更改为该目录后 cd 设置的当前工作目录路径名。

退出状态

cd 返回以下退出值:

0

目录已成功更改。

>0

出现错误。

属性

有关下列属性的说明,请参见 attributes(7):

csh、ksh88、sh

属性类型
属性值
可用性
system/core-os
接口稳定性
Committed(已确定)
标准
请参见 standards(7)。

ksh

属性类型
属性值
可用性
system/core-os
接口稳定性
Uncommitted(未确定)

另请参见

csh(1)、ksh(1)、ksh88(1)、pwd(1)、sh(1)、chdir(2)、attributes(7)、environ(7)、standards(7)