Linux 如何直接操作PWD?

Linux 如何直接操作PWD?,linux,shell,variables,cd,pwd,Linux,Shell,Variables,Cd,Pwd,我知道有一个变量PWD,当我键入命令cd时,它会发生变化。但是当我尝试手动更改它时,当前目录没有更改。如何直接操作PWD?至少在运行bash的Mac和Linux机器上,您可以直接覆盖变量,因此运行PWD=/会将当前目录(在提示符中)更改为/ bash中的变量PWD控制着shell的工作目录(同样也只是提示符),您将看到PWD=命令更改后的目录,但PWD命令不受更改的影响 <0>xxxx@dhcp89-089-034:~$ PWD=/ <0>xxxx@dhcp89-089-

我知道有一个变量PWD,当我键入命令cd时,它会发生变化。但是当我尝试手动更改它时,当前目录没有更改。如何直接操作PWD?

至少在运行bash的Mac和Linux机器上,您可以直接覆盖变量,因此运行PWD=/会将当前目录(在提示符中)更改为/

bash中的变量PWD控制着shell的工作目录(同样也只是提示符),您将看到PWD=命令更改后的目录,但PWD命令不受更改的影响

<0>xxxx@dhcp89-089-034:~$ PWD=/
<0>xxxx@dhcp89-089-034:/$ pwd
/Users/xxxx
xxxx@dhcp89-089-034:~$PWD=/
xxxx@dhcp89-089-034:/$pwd
/用户/xxxx

现在,环境变量PWD是bash提示符,不是真正的工作目录,除非您实际使用“cd”命令,否则修改它也不是一件有用的事情。

至少在运行bash的Mac和Linux机器上,您可以覆盖该变量,因此运行PWD=/将更改当前目录(在提示符中)至/

bash中的变量PWD控制着shell的工作目录(同样也只是提示符),您将看到PWD=命令更改后的目录,但PWD命令不受更改的影响

<0>xxxx@dhcp89-089-034:~$ PWD=/
<0>xxxx@dhcp89-089-034:/$ pwd
/Users/xxxx
xxxx@dhcp89-089-034:~$PWD=/
xxxx@dhcp89-089-034:/$pwd
/用户/xxxx

现在,环境变量PWD是bash提示符,不是真正的工作目录,除非您实际使用“cd”命令,否则修改它也不是一件有用的事情。

虽然其他shell可能也支持这样的变量,但
$PWD
变量通常特定于bash shell

报告说:

PWD

cd内置设置的当前工作目录


这意味着当您使用
cd
内置来更改目录时,它将被设置,但是当您设置
$PWD

时,bash不会更改当前目录,而其他shell可能也支持这样的变量,
$PWD
变量通常特定于bash shell

报告说:

PWD

cd内置设置的当前工作目录

这意味着当您使用内置的
cd
更改目录时,它将被设置,但当您设置
$PWD
时,bash不会更改当前目录:

可以忽略对此变量的赋值

赋值在bash、dash、ash、zsh或ksh中并不特殊,下次shell更改目录时,该值将被覆盖。

:

可以忽略对此变量的赋值


赋值在bash、dash、ash、zsh或ksh中并不特殊,下次shell更改目录时,该值将被覆盖。

您是在尝试更改PWD还是在尝试更改当前目录?通过直接操作PWD而不是使用
cd
,您真正想要实现什么?也就是说,不清楚您的实际目标是什么,我怀疑您的问题可能是。我只是想做与command cd相同的事情,但以另一种方式(通过手动更改PWD)。显然,更改
PWD
并不能达到您所发现的效果。因为
cd
是摇
PWD
尾巴的猫,而不是反过来<代码>cd是外壳的一部分。大多数shell都是用C编写的。因此,如果您想做它所做的事情,那么就编写与之相同的C(或其他语言)代码。在C中,该函数可用于更改当前工作目录。设置
$PWD
将与
cd
的作用相同,或者它将使shell处于一种非常奇怪的状态,即拥有一个与实际工作目录不同的
$PWD
(将
PWD
打印什么?将
cd.
做什么?)这样想:这有点像在镜子里画胡子你是想更改PWD还是想更改当前目录?通过直接操作PWD而不是使用
cd
,您真正想要实现什么?也就是说,不清楚您的实际目标是什么,我怀疑您的问题可能是。我只是想做与command cd相同的事情,但以另一种方式(通过手动更改PWD)。显然,更改
PWD
并不能达到您所发现的效果。因为
cd
是摇
PWD
尾巴的猫,而不是反过来<代码>cd是外壳的一部分。大多数shell都是用C编写的。因此,如果您想做它所做的事情,那么就编写与之相同的C(或其他语言)代码。在C中,该函数可用于更改当前工作目录。设置
$PWD
将与
cd
的作用相同,或者它将使shell处于一种非常奇怪的状态,即拥有一个与实际工作目录不同的
$PWD
(将
PWD
打印什么?将
cd.
做什么?)这样想:这有点像在镜子里画胡子它只是改变了提示,没有改变目录,只是改变了提示,没有改变目录。