将当前工作目录移动到新位置后的 pwd 输出

use*_*636 4 unix filesystems pwd

我有一个关于为什么会发生这种情况的一般问题,以及对“pwd”的误解。

您从目录 /test 开始,其中有 /test/folder1。

文件夹 1 有:file1.txt

在 2 个单独的终端中,我们“cd /test”,并执行“ls”并发现 folder1 作为这两个终端的输出。

我们现在在终端一上“cd folder1”。第二个终端保留在 /test 中。

如果我们然后在终端 2 上运行“mv folder1 folder2”并运行“ls”,我们将得到 folder2 作为输出。清楚地表明我们的MV成功了。

但是,在终端 1(在 /test/folder1 中)中,如果我们运行“pwd”,则输出仍为 /test/folder1。即:它并不反映我们已经将文件夹移至 /test/folder2。

为什么会这样?我可以理解为什么如果我们要编辑 file1.txt 它只是文件系统中应该指向同一个文件的指针。确实如此,您可以在每个终端中修改文件并在另一个终端中查看编辑。但是,为什么“pwd”命令不再反映该目录的实际路径?

谢谢!

Ric*_*arn 5

假设您正在使用 bash,pwd会向您显示PWD环境变量的值,当您使用cd. 该folder1目录改变名称不会引起庆典来更新PWD。但是,您可以找到目录已更改名称的证据:

  • pwd -P 将显示目录的新名称。
  • ls -l /proc/self/cwd 将链接到新名称。