Linux 如何直接操作PWD?
我知道有一个变量PWD,当我键入命令cd时,它会发生变化。但是当我尝试手动更改它时,当前目录没有更改。如何直接操作PWD?至少在运行bash的Mac和Linux机器上,您可以直接覆盖变量,因此运行PWD=/会将当前目录(在提示符中)更改为/ bash中的变量PWD控制着shell的工作目录(同样也只是提示符),您将看到PWD=命令更改后的目录,但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-
<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.
做什么?)这样想:这有点像在镜子里画胡子它只是改变了提示,没有改变目录,只是改变了提示,没有改变目录。