我有一个普遍的问题,为什么会发生这种情况,以及对'pwd'的误解。
你从目录/测试开始,你有/ test / folder1。
文件夹1具有:file1.txt
在2个单独的终端中,我们“cd / test”,并执行“ls”并发现folder1作为这两个终端的输出。
我们现在在终端1上“cd folder1”。第二站仍然在/测试。
如果我们在终端2上“mv folder1 folder2”并运行“ls”,我们将获得folder2作为输出。清楚地表明我们的MV是成功的。
但是,如果我们运行“pwd”,在终端1(位于/ test / folder1中)输出仍为/ test / folder1。即:它并不反映我们已将文件夹移动到/ test / folder2。
为什么会这样?我可以理解为什么如果我们要编辑file1.txt它只是文件系统中应该指向同一文件的指针。实际上,您可以修改每个终端中的文件并查看另一个终端中的编辑内容。但是,为什么'pwd'命令不再反映该目录的实际路径?
谢谢!
答案 0 :(得分:2)
假设您正在使用bash,pwd
会显示PWD
环境变量的值,当您使用cd
更改目录时,该变量会更新。 folder1
目录更改名称不会导致bash更新PWD
。但是,您可以找到目录已更改名称的证据:
pwd -P
将显示目录的新名称。ls -l /proc/self/cwd
将链接到新名称。答案 1 :(得分:0)
我认为第一个终端没有理由重新评估它的位置。如果在第一个终端中执行以下命令
cd .
您将看到您的当前工作目录确实已根据重命名(mv
)更改。